使用sqlite3的API接口 需要加头文件 #include
编译时,需要连接sqlite3的库 -lsqlite3
1.打开数据库文件的函数
int sqlite3_open(const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */ );
功能:
打开一个数据库文件
如果存在就直接打开 不存在就新建并打开
参数:
filename 数据库文件名
ppdb 操作数据库的指针,句柄。
返回值:
成功 SQLITE_OK
失败 错误码
2.获取错误信息的函数
const char *sqlite3_errmsg(sqlite3* db);
功能:获取错误信息描述 最后一次出错的信息
3.关闭数据库文件的函数
int sqlite3_close(sqlite3* db);
功能:关闭一个数据库
4.执行sql语句的函数
int sqlite3_exec(sqlite3* db, const char *sql,
int (*callback)(void*,int,char**,char**),
void *arg, char **errmsg);
功能:
执行一条sql语句
参数:
db 数据库的句柄指针
sql 将要被执行sql语句
callback 回调函数,只有在查询语句时,才使用
arg 给回调函数callback 传参的 只有在查询语句时才给回调函数传参
errmsg 错误信息的地址
注意,如果使用了最后一个参数,
使用完之后需要手动调用sqlite3_free释放空间
返回值:
成功 SQLITE_OK
出错 错误码
----------------关于sqlite3_exec的回调函数--------------------
int (*callback)(void* arg, int ncolumn, char** f_value,char** f_name)
功能
得到查询结果
参数:
arg 为回调函数传递参数使用的
ncolumn 记录中包含的字段的数目
f_value 指向包含每个字段值的指针数组的指针
f_name 指向包含每个字段名称的指针数组的指针
返回值:
成功 0
出错 非0
5.查询数据库的函数
int sqlite3_get_table( sqlite3 *db, const char *zSql, char ***pazResult,
int *pnRow, int *pnColumn, char **pzErrmsg);//PS:要配合void sqlite3_free_table(char **result);
功能:
查询数据库,它会创建一个新的内存区域来存放查询的结果信息
不再使用结果集时 需要调用 sqlite3_free_table 来释放
参数:
db 数据库操作句柄
sql 数据库的sql语句
azResult 查询的结果
nRow 不包含表头的行数
nColumn 列数
errmsg 错误消息如果使用了 及得使用 sqlite3_free 释放
返回值:
成功 0
出错 errcode
6.释放sqlite3_get_table产生的结果集
void sqlite3_free_table(char **result);