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函数接口的主要内容,如果未能解决你的问题,请参考以下文章

sqlite3接口API函数备注

Dart/Flutter ffi(外部函数接口)本机回调,例如:sqlite3_exec

SQLite剖析之编程接口详解

嵌入式数据库sqlite3进阶篇-如何用C语言操作sqlite3,一文搞懂

C++ sqlite3使用sqlite3_prepare_v2接口报错,求大神解答

为Ruby安装SQLite3数据库接口