Skip to content
On this page

sqlite3_exec


标签:sqlite/api  

函数原型

功能:执行 SQL 语句

cpp
int sqlite3_exec(
    sqlite3*           db,          /*数据库连接对象*/
    const char*        sql,         /*待执行的 SQL 语句*/
    int (*callback)(void*,int,char**,char**), /*回调函数*/
    void*              arg,         /*回调函数的第一个参数*/
    char**             errmsg       /*错误信息*/
);
  • 参数:
    • db: 数据库连接对象
    • sql: 待执行的 SQL 语句
    • callback: 回调函数,用于处理查询结果
    • arg: 回调函数的第一个参数
    • errmsg: 指向错误信息的指针
  • 返回值:
    • int: 执行结果,成功返回 SQLITE_OK,失败返回错误代码

回调函数

功能:每当查询到一条满足条件的记录,该回调函数会被执行一次。

c
int select_callback(void* arg, int ncolumn,
                    char **column_text, char** b);

参数:

  • void *argsqlite3_exec 函数的第四个参数传入
  • int ncolumn:查询结果的列数
  • char **column_text:该二级指针指向的是一个数组,该数组是一个指针数组,数组中的每个元素都是 char* 类型的指针。该 char*类型的指针元素指向的内容代表了查询结果的内容。
  • char **column_name:该二级指针指向的是一个数组,该数组是一个指针数组,数组中的每个元素都是 char* 类型的指针。该 char*类型的指针元素指向的内容代表了查询结果列名。

注意事项

  • sqlite3_exec() 函数用于执行 SQL 语句,不返回结果集
  • 若有需要返回结果集的 SQL 语句,请使用 sqlite3_prepare_v2() 和 sqlite3_step() 等函数
  • 回调函数应该指向一个函数,该函数具有特定的格式定义,专用于处理查询结果
  • errmsg 参数用于返回错误信息,必须为 NULL 或者是一个指向已分配空间的 char* 指针,若此参数为 NULL,则忽略错误信息,否则在出现错误时填充 errmsg 指向的空间
  • 回调函数返回 0 时,查询会立即停止,并且可以通过查询结果的 errcode 属性获得错误码。如果查询成功返回错误码为 SQLITE_OK。

链接

Last updated: