sqlite3_exec的函数原型:
int sqlite3_exec( sqlite3 *pDb, const char *sql, int (*callback)(void *arg, int col, char **str, char **name), void *arg, char **errmsg )
参数说明:
pDb:打开数据库的句柄
sql:要执行的SQL语句
callback:回调函数,处理SQL语句执行的结果(查询操作)
一条结果调用一次该回调函数。(注:回调函数必须返回SQLITE_OK)
arg:exec的第四个参数
col:本条结果的字段数
str:记录字段值的数组
name:记录字段名的数组
arg:传递给回调函数的第一个参数
errmsg:错误信息
返回值:
成功返回SQLITE_OK,否则打开失败
例子:
#include <stdio.h> #include "sqlite3.h" //查询的回调函数 int sql_callback(void *arg,int col,char **str,char **name) { int i; for(i=0;i<col;i++){ printf("%s:%s ",name[i],str[i]); } printf("\n"); //返回SQLITE_OK表示执行成功 return SQLITE_OK; } int main() { sqlite3 *pDb = NULL; //1.打开数据库 int res = sqlite3_open("./test.db",&pDb); if(res!=SQLITE_OK){ printf("数据库打开失败!\n"); return -1; } printf("数据库打开成功!\n"); int id = 0; char sql[128] = {}; printf("请输入要查找的id:"); scanf("%d",&id); sprintf(sql,"select * from mytbl where id=%d;",id); //构建SQL语句 //const char *sql = "create table if not exists mytbl(id int unique,name ntext,age int);";//建表 //const char *sql = "insert into mytbl values(1,'宋江',36);";//插入 //const char *sql = "insert into mytbl values(2,'李逵',24);";//插入 //const char *sql = "insert into mytbl values(3,'潘金莲',21);";//插入 //const char *sql = "select * from mytbl;";//查询 //2.执行SQL语句 res = sqlite3_exec(pDb,sql,sql_callback,NULL,NULL); if(res!=SQLITE_OK){ printf("sql语句执行失败!\n"); return -1; } printf("sql语句执行成功!\n"); //3.关闭数据库 sqlite3_close(pDb); return 0; }