【数据库】SQLite3常⽤函数
SQLite3常⽤函数
打开数据库
函数原型: int sqlite3_open(const char* fileName, sqlite3** ppDB);
函数功能:打开⼀个数据库,若该数据库⽂件不存在,则⾃动创建。打开或者创建数据库的命令会被缓存,直到这个数据库真正被调⽤的时候才会被执⾏。
输⼊参数:fileName,待打开的数据库⽂件名称,包括路径,以’\0’结尾;特别说明:SQLite ⽀持内存数据库,内存⽅式存储使⽤⽂件名“:memory:”
输出参数:ppDB,返回打开的数据库句柄;
返回值:执⾏成功返回SQLITE_OK,否则返回其他值;
执⾏数据库语句(创建表、插⼊数据、更新数据、删除数据)
函数原型:int sqlite3_exec(sqlite3* pDB, const char sql, sqlite_callback callback, void para, char** errMs
g);
函数功能:编译和执⾏零个或多个SQL 语句,查询的结果返回给回调函数callback
输⼊参数:ppDB,数据库句柄;sql,待执⾏的SQL 语句字符串,以’\0’结尾;callback,回调函数,⽤来处理查询结果,如果不需要回调(⽐如做insert 或者delete 操作时),可以输⼊NULL;
para,⽤户传⼊的参数,可以为NULL,该参数指针最终会被传给回调函数callback,供⽤户在回调函数中使⽤;
输出参数:errMsg,返回错误信息,注意是指针的指针。
返回值:执⾏成功返回SQLITE_OK,否则返回其他值
查询数据库
函数原型:int sqlite3_get_table(sqlite3* pDB, const char *sql,char *pResult, int * rowCount,int * columnCount, char errMsg);
函数功能:执⾏SQL 语句,通过⼀维数组返回结果;
输⼊参数:ppDB,打开的数据库句柄;sql,待执⾏的SQL 字符串,以’\0’结尾;
输出参数:rowCount,查询出多少条记录(即查出多少⾏);columnCount,查询出来的记录有多少个字段(多少列); errMsg,返回错误信息;pResult,查询结果,是由字符串组成的⼀维数组(不要以为是⼆维数组,更不要以为是三维数组)。它的内存布局是:第⼀⾏是字段名称,后⾯紧接着每个字段的值;
返回值:执⾏成功返回SQLITE_OK,否则返回其他值
释放查询结果
column函数的使用函数原型:void sqlite3_free_table(char **result);
函数功能:释放查询结果占⽤的内存;
输⼊参数:result,通过函数sqlite3_get_table()查询到的记录结果
输出参数:⽆
返回值:⽆
回调函数
函数原型:typedef int (sqlite_callback)(void para,int columnCount,char** columnValue,char** columnName);
函数功能:由⽤户处理查询的结果
输⼊参数:para,从sqlite3_exec()传⼊的参数指针;columnCount, 查询到的这⼀条记录有多少个字段(即这条记录有多少列);columnValue,查询出来的数据都保存在这⾥,它实际上是个1 维数组(不要以为是2 维数组),每⼀个元素都是⼀个char * 值,是⼀个字段内容(⽤字符串来表⽰,以‘\0’结尾);columnName,与columnValue 是对应的,表⽰这个字段的字段名称。
输出参数:⽆
返回值:执⾏成功返回SQLITE_OK,否则返回其他值
调试数据库
函数原型:const char sqlite3_errmsg(sqlite3 pDB);
函数功能:获取最近调⽤的API 接⼝返回的错误说明,这些错误信息UTF-8的编码返回,并且在下⼀次调⽤任何SQLite API 函数时被⾃动清除;
输⼊参数:pDB,打开的数据库句柄
输出参数:⽆
返回值:错误说明的字符串指针
关闭数据库
函数原型: int sqlite3_close(sqlite3* pDB);
函数功能:关闭⼀个打开的数据库;
输⼊参数:ppDB,打开的数据库句柄
输出参数:⽆
返回值:执⾏成功返回SQLITE_OK,否则返回其他值;
更新⽇期20191220
如有任何问题,请评论或者私信,⾮常感谢
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论