sqlite3函数接口
Posted zx0722
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlite3函数接口相关的知识,希望对你有一定的参考价值。
sqlite3函数接口(重点★):
int sqlite3_open(const char*, sqlite3**);
函数用于打开/创建一个函数库
const char* 指定文件名,sqlite3** 指定数据库句柄,用户通过数据库句柄操作数据库
返回一个整数错误代码,=0 表示成功码,> 0都是错误
int sqlite3_close(sqlite3*);
关闭数据库文件,参数是数据库句柄
int sqlite3_exec(sqlite3*, const char *sql, sqlite_callback, void*, char**);
函数用于执行一条或多条SQL语句,SQL语句之间用“;”隔开
sqlite3*指定已打开的数据库句柄,const char *sql 指定SQL指令,sqlite_callback 在回调函数中可以获得SQL执行的结果,void* 指定传给回调函数的数据 , char** 指定命令执行失败的详细错误信息
返回0表示sql指令执行完毕,否则说明这次执行没有成功
int sqlite3_get_table(
sqlite3 *db, /* An open database */
const char *zSql, /* SQL to be evaluated */
char ***pazResult, /* Results of the query */
int *pnRow, /* Number of result rows written here */
int *pnColumn, /* Number of result columns written here */
char **pzErrmsg /* Error msg written here */
);
sqlite3_get_table主要是用于非回调的方式进行select查询
db 打开数据库得到的指针, zSql 一条sql语句,跟sqlite3_exec中一样, pazResult 查询的数据结果,他是一个指针数组,内存分布为:字段名称,后面是紧接着是每个字段的值, pnRow 查询到的数据条数(行数), pnColumn 查询到的字段数(列数), pzReemsg 错误信息;
返回0或其他
void sqlite3_free_table(char **result);
用于释放保存查询内容的指针数组
int sqlite_callback(
void* pv, /* 由 sqlite3_exec() 的第四个参数传递而来 */
int argc, /* 表的列数 */
char** argv, /* 指向查询结果的指针数组, 可以由 sqlite3_column_text() 得到 */
char** col /* 指向表头名的指针数组, 可以由 sqlite3_column_name() 得到 */
);
返回值:1 中断查找,0 继续列举查询到的数据
还有2个(次要):
const char *sqlite3_errmsg(sqlite3*);
返回错误码所对应的文字说明,参数是数据库句柄
void sqlite3_free(void*);
释放存放错误信息的内存空间,sqlite3_errmsg 返回的errmsg必须用此函数释放
以上是关于sqlite3函数接口的主要内容,如果未能解决你的问题,请参考以下文章
Dart/Flutter ffi(外部函数接口)本机回调,例如:sqlite3_exec
嵌入式数据库sqlite3进阶篇-如何用C语言操作sqlite3,一文搞懂