#include <sqlite3.h>
#include <stdio.h>
#include <stdlib.h>
/*回调函数,在每一行都会执行*/
// int sqlite3_exec(
// sqlite3*, /* An open database */
// const char *sql, /* SQL to be evaluated */
// int (*callback)(void*,int,char**,char**), /* Callback function */
// void *, /* 1st argument to callback */
// char **errmsg /* Error msg written here */
// );
//这个函数相当于打印一行
int showresult(void *unused,int count,char **argv,char **colname)
{
for(int i=0;i<count;i++) //count 相当于列数
{
printf("%s=%s\t",colname[i],argv[i]);//colname 相当于字段名,argv 相当于数据
}
printf("\n");
return 0;
}
int main(void)
{
sqlite3 *conn;/*句柄*/
if(sqlite3_open("ku1.db",&conn)!=SQLITE_OK)
{
printf("打开失败%s\n",sqlite3_errmsg(conn));
}
/*第二个参数是输出型的,
所以需要将它的地址作为参数传进来*/
char *errmsg=NULL;
int ret=sqlite3_exec(conn,"select * from t1",
showresult,NULL,&errmsg);
if(ret!=SQLITE_OK)
printf("%s\n",errmsg);
sqlite3_close(conn);
}
linux下sqlite用c语言回调函数操作数据库
最新推荐文章于 2022-09-12 19:57:51 发布