sqlite 基本回调用法
发布时间:2020-12-12 20:12:17 所属栏目:百科 来源:网络整理
导读:#include sqlite3.h#include stdio.h#include stdlib.h//n_column 是列数,在select语句中采用了*,而该表有两列,所以此值为2,column_value 和 column_name 应该看成是一维指针,它指向的是一个//char *的字符串int LoadMyInfo (void *para,int n_column,char *
#include <sqlite3.h> #include <stdio.h> #include <stdlib.h> //n_column 是列数,在select语句中采用了*,而该表有两列,所以此值为2,column_value 和 column_name 应该看成是一维指针,它指向的是一个 //char *的字符串 int LoadMyInfo (void *para,int n_column,char ** column_value,char ** column_name){ int i; printf("record %d field n",n_column); for( i = 0; i < n_column; i++){ printf("field name : %s field value: %s n",column_name[i],column_value[i]); } printf("-------------------------n"); return 0; } int main(){ sqlite3 *db; int result; char *errmsg = NULL ; result = sqlite3_open("C://sely.db",&db); if( result != SQLITE_OK){ return -1; } result = sqlite3_exec(db,"create table MyTable_1(ID integer primary key autoincrement,name varchar(32))",NULL,&errmsg); if(result != SQLITE_OK){ printf("create table error: %d,reason : %s",result,errmsg); } result = sqlite3_exec(db,"insert into MyTable_1 (name) values("walk")",&errmsg); if(result != SQLITE_OK){ printf("create table error: %d,errmsg); } result = sqlite3_exec(db,"insert into MyTable_1 (name) values("bus")","insert into MyTable_1 (name) values("bike")","insert into MyTable_1 (name) values("car")",errmsg); } //loadMyInfo 是回调函数,每次有一个记录被查询出,都会调用一次,结果集中有多少记录,就会执行多少次! result = sqlite3_exec(db,"select *from MyTable_1",LoadMyInfo,errmsg); } sqlite3_close(db); system("pause"); return 0; } /* 执行结果如下: record 2 field field name : ID field value: 1 field name : name field value: walk ------------------------- record 2 field field name : ID field value: 2 field name : name field value: bus ------------------------- record 2 field field name : ID field value: 3 field name : name field value: bike ------------------------- record 2 field field name : ID field value: 4 field name : name field value: car ------------------------- Press any key to continue . . . */ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |