SQLite源码编译使用
来源:互联网 发布:制作网页的软件 编辑:程序博客网 时间:2024/06/09 21:31
因为项目需要用到数据库,而且不能依赖具体平台同时还要具有灵活性,所以就想到了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,int argc, char ** argv, 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 源码获取、编译与使用
- SQLite 源码编译方法
- vs编译sqlite源码
- vc编译Sqlite源码小记
- 使用VC2008编译sqlite
- 使用VS2012编译SQLite
- mfc编译、使用sqlite
- Centos 6.3 源码编译安装sqlite
- 如何使用VC6编译sqlite3源码生成动态链接库(版本:sqlite-source-3_6_23_1)
- 如何使用VC6编译sqlite3源码生成动态链接库(版本:sqlite-source-3_6_23_1)
- 如何使用VC6编译sqlite3源码生成动态链接库(版本:sqlite-source-3_6_23_1)
- 转 使用vs2008编译sqlite
- sqlite 3 使用交叉编译
- sqlite 3 使用交叉编译
- 编译sqlite动态链接库并使用
- Sqlite的编译、使用和调试
- SQLite的编译、安装和使用
- Android的ImageView如何显示网络图片资源
- sqlplus登录、连接命令
- 查看OpenLDAP里lastmod开启的几个隐藏的操作性属性
- javascript中如何将字符型数字转换为数值型(二)
- C语言基础
- SQLite源码编译使用
- sql plus 登录时密码不正确
- oracle 物理结构之redo log
- jsp + mysql 存取数据乱码的解决方法
- 编译模块出现WARNING: "xxxx" [xxxx.ko] undefined!的警告
- LayoutInflater的使用 和getSystemService系统服务
- EPT in kvm
- Antlr---特点领域语言
- SqlServer 将存储过程查询的数据插入一张表