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