文章目录
sqlite3应用相关函数
1、打开数据库:sqlite3_open
原型:
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
);
函数功能:打开或创建数据库
参数说明:
- filename – 数据库文件名(相对或绝对路径),
- 如果该文件不存在,则该函数会创建该数据库文件并打开
- 如果该文件存在,则打开它
- ppDb–返回的数据库句柄,所有与该数据库相关的操作都要基于该句柄来执行
返回值:SQLITE_OK(SQLITE_OK的值为0)则表示操作正常
2、关闭数据库:sqlite3_close
原型:
int sqlite3_close(sqlite3 *ppDb);
ppDb--数据库句柄
3、执行sql操作:sqlite3_exec
原型:
int sqlite3_exec(
sqlite3* ppDb, /* 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 */
);
函数功能:执行一条sql 语句的函数
- 第1个参数ppDb,数据库句柄
- 第2个参数constchar*sql,是一条sql 语句,以\0结尾。
- 第3个参数sqlite3_callback ,是回调函数,当SQL语句执行完毕后,会自动调用。如果SQL语句不需要处理返回数据,则可以置为NULL
- 第4个参数void*是你所提供的指针,该参数作为上面这个回调函数的参数,可以作为回调函数的一个输入。不需要时可以置为NULL
- 第5个参数char** errmsg 是错误信息。注意是指针的指针。sqlite3里面有很多固定的错误信息。执行sqlite3_exec 之后,执行失败时可以查阅这个指针(直接cout<<errmsg得到一串字符串信息,这串信息告诉你错在什么地方。sqlite3_exec函数通过修改你传入的指针的指针,把你提供的指针指向错误提示信息,这样sqlite3_exec函数外面就可以通过这个char*得到具体错误提示。
说明:通常,sqlite3_callback 和它后面的void*这两个位置都可以填NULL。填NULL表示你不需要回调。比如你做insert 操作,做delete操作,就没有必要使用回调。而当你做select 时,就要使用回调,因为sqlite3 把数据查出来,得通过回调告诉你查出了什么数据。
exec 的回调
typedef int(*sqlite3_callback