使用C语言实现的实例代码如下:
#include <stdio.h> #include <sqlite3.h> static int callback(void *NotUsed,int argc,char **argv,char **azColName){ int i; for(i=0; i<argc; i++){ printf("%s = %s/n",azColName[i],argv[i] ? argv[i] : "NULL"); } printf("/n"); return 0; } int main(int argc,char **argv){ sqlite3 *db; char *zErrMsg = 0; int rc; if( argc!=3 ){ fprintf(stderr,"Usage: %s DATABASE sql-STATEMENT/n",argv[0]); exit(1); } rc = sqlite3_open(argv[1],&db); if( rc ){ fprintf(stderr,"Can't open database: %s/n",sqlite3_errmsg(db)); sqlite3_close(db); exit(1); } rc = sqlite3_exec(db,argv[2],callback,&zErrMsg); if( rc!=sqlITE_OK ){ fprintf(stderr,"sql error: %s/n",zErrMsg); } sqlite3_close(db); return 0; } 在sqlite中使用回调函数十分方便,更重要的是使得程序模块化,可读性都更好! 不用sqlite3_exec之后都需要使用一个结果集来保存查询结果,然后迭代取出结果!