SQLite源码编译使用

SQLite源码编译使用,第1张

概述   因为项目需要用到数据库,而且不能依赖具体平台同时还要具有灵活性,所以就想到了SQLite,然后拿到源码后开始修改使用,这里为了备忘就简单记录一下,下面就是简单的使用例子,同时也希望能够帮到一些刚刚接触SQLite的同学。 static char*create_settinginfo_table_cmd="create table setting_data(Option,DefaultValu

因为项目需要用到数据库,而且不能依赖具体平台同时还要具有灵活性,所以就想到了sqlite,然后拿到源码后开始修改使用,这里为了备忘就简单记录一下,下面就是简单的使用例子,同时也希望能够帮到一些刚刚接触sqlite的同学。


static char*create_settinginfo_table_cmd="create table setting_data(Option,DefaultValue,UsingValue)";static char*select_record_by_key="select * from setting_data WHERE %s='%s'";static char*insert_record_table_cmd="insert into setting_data values('%s','%s','%s')";static char*modify_record_by_key="update setting_data SET %s='%s' WHERE %s='%s'";static char*null_string="null";

static int search_callback_exec0(voID*exists,int argc,char ** argv,char ** aszColname){	if(exists) {		*((int*)exists)=1;	}	return 0;}static int search_callback_exec(voID*exists,char ** aszColname){	if(exists) {		*((int*)exists)=1;		strcpy(SETTING_MANAGER.value_buffer,argv[2]);	}	return 0;}static enum SETTING_INFO_STATUS get_option_name_value(char*option_name,char**value){	int exists=0,ret;	char*err_msg=NulL;	sprintf(SETTING_MANAGER.cmd_buffer,select_record_by_key,"Option",option_name);	ret=sqlite3_exec(SETTING_MANAGER.db,SETTING_MANAGER.cmd_buffer,search_callback_exec,(voID*)&exists,&err_msg);	if(ret!=sqlITE_OK) {		printk("Error:%s\n",err_msg);		sqlite3_free(err_msg);		return SETTING_INFO_STATUS_NOT_EXIST;	}	if(exists==0) {		return SETTING_INFO_STATUS_NOT_EXIST;	}	*value=SETTING_MANAGER.value_buffer;	return SETTING_INFO_STATUS_SUCCESS;}

简答的说一下,首先定义增删改查的字符串,然后根据需要格式化,最终生成执行命令字符串,最后再调用执行SQL语句的函数,这里需要传递几个参数,以查找为例,里面有一个查找到结果后回调的函数,如果查找到结果就回调传递进去的函数,这里需要特别说明一下,每查找到一条记录就会回调一次指定的函数,并把结果传递过去,结果回调函数的参数这里简单说明一下,第一个参数是调用SQL语句执行函数时指定的给结果回调函数的一个用户自定义参数,第二个是一条记录的字段数,对应argv和aszColname,比如argv[0]就是当前记录(可以理解为一行)的第一个字段值,aszColname[0]就是当前记录的字段名,其他的都比较好理解,就不罗嗦了,备忘到此结束。 总结

以上是内存溢出为你收集整理的SQLite源码编译使用全部内容,希望文章能够帮你解决SQLite源码编译使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1175586.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存