sqlite是一款轻量级的数据库,提供了C/C++的API,在嵌入式领域应用广泛。我是在Linux下利用sqlite的源码编译成动态库,在我的代码里直接调用sqlite的接口,非常易于使用。
简单列举几个常用的接口,网上的资料都有,而且也很容易使用
int sqlite3_open(const char *filename, sqlite3 **ppDb );
创建数据库接口,如果filename表示的数据库存在,则打开该数据库;返回值为SQLITE_OK表示操作成功,否则应该查看返回值检查错误原因。通过ppDb返回操作数据库的指针。
int sqlite3_close(sqlite3 *ppDb);
关闭数据库,返回SQLITE_OK表示操作成功
int sqlite3_exec(
sqlite3* ppDb,
const char *sql,
int (*callback)(void*,int,char**,char**),
void *,
char **errmsg
);
第2个sql表示要执行的sql语句,sql的写法和其他数据库基本相同;
第3个参数表示sqlite3_exec执行成功后调用的回调函数,用以返回得到的数据,该回调函数需要用户实现,当不需要回调时,我们一般填上NULL,如insert和delete操作都不需要回调通知上层,通常是执行select语句才需要通过回调返回数据;
第4个参数是要传入回调函数的参数,如果不需要这个参数则直接填上NULL;
第5个参数是用以得到错误信息,如果sqlite3_exec执行失败,除了会返回一个错误码外,还可以通过errmasg直接打印出错误信息。
下面说明一下sqlite3_exec的回调函数:
int (*callback)(void*,int,char**,char**),
第1个参数void*是我们要传入的参数,根据具体的场景决定是否传入这个参数;
第2个参数int表示返回的字段个数,就是该条记录的列数;(从这里可以看出,每检索到一条记录都会调用一次回调函数)
第3个参数表示每个字段的值;
第4个参数表示字段名。