zoukankan      html  css  js  c++  java
  • 【数据库】SQLite3常用函数

    版权声明:本文为博主原创文章,转载请注明出处。 https://www.cnblogs.com/YaoYing/p/12067860.html

    SQLite3常用函数

    打开数据库

    函数原型: int sqlite3_open(const char* fileName, sqlite3** ppDB);
    函数功能:打开一个数据库,若该数据库文件不存在,则自动创建。打开或者创建数据库的命令会被缓存,直到这个数据库真正被调用的时候才会被执行。
    输入参数:fileName,待打开的数据库文件名称,包括路径,以’’结尾; 特别说明:SQLite 支持内存数据库,内存方式存储使用文件名“:memory:”
    输出参数:ppDB,返回打开的数据库句柄;
    返回值:执行成功返回SQLITE_OK,否则返回其他值;

    执行数据库语句(创建表、插入数据、更新数据、删除数据)

    函数原型:int sqlite3_exec(sqlite3* pDB, const char sql, sqlite_callback callback, voidpara, char** errMsg);
    函数功能:编译和执行零个或多个SQL 语句,查询的结果返回给回调函数callback
    输入参数:ppDB,数据库句柄;sql,待执行的SQL 语句字符串,以’’结尾;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 字符串,以’’结尾;
    输出参数:rowCount,查询出多少条记录(即查出多少行);columnCount,查询出来的记录有多少个字段(多少列); errMsg,返回错误信息;pResult,查询结果,是由字符串组成的一维数组(不要以为是二维数组,更不要以为是三维数组)。它的内存布局是:第一行是字段名称,后面紧接着每个字段的值;
    返回值:执行成功返回SQLITE_OK,否则返回其他值

    释放查询结果

    函数原型: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 * 值,是一个字段内容(用字符串来表示,以‘’结尾);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
    如有任何问题,请评论或者私信,非常感谢

  • 相关阅读:
    Overloaded的方法是否可以改变返回值的类型
    parseXXX的用法
    java的类型转换问题。int a = 123456;short b = (short)a;System.out.println(b);为什么结果是-7616?
    UVA 10405 Longest Common Subsequence(简单DP)
    POJ 1001 Exponentiation(大数处理)
    POJ 2318 TOYS(计算几何)(二分)
    POJ 1265 Area (计算几何)(Pick定理)
    POJ 3371 Flesch Reading Ease (模拟题)
    POJ 3687 Labeling Balls(拓扑序列)
    POJ 1094 Sorting It All Out(拓扑序列)
  • 原文地址:https://www.cnblogs.com/YaoYing/p/12067860.html
Copyright © 2011-2022 走看看