Sqlite3基础

来源:互联网 发布:淘宝异想星球万物萌生 编辑:程序博客网 时间:2024/05/29 17:54

在Sqlite3中为C语言提供了很多接口,这里列举出一部分常用的接口函数。

1、打开和关闭一个数据库链接sqlite3_open用法

打开数据库函数原型:
int sqlite3_open(
const char filename, / Database filename (UTF-8) */
sqlite3 *ppDb / OUT: SQLite db handle */
);
第一个参数:一个数据库的文件名,比如:/root/My_database.db
第二个参数:一个sqlite3数据库句柄指针,相当于fopen返回的FILE*
功能:打开一个数据库文件,并与一个sqlite3句柄关联。如果该文件不存在则创建它。返回值如果是SQLITE_OK则打开成功。

关闭数据库函数 原型:
int sqlite3_close(sqlite3 *ppDb);
ppDb为刚才使用sqlite3_open打开的数据库句柄指针

2、执行sql操作sqlite3_exec

原型:

int sqlite3_exec(
sqlite3* ppDb, /* An open database */
const char sql, / SQL to be evaluated */
int (callback)(void,int,char**,char**), /* Callback function */
void , / 1st argument to callback */
char *errmsg / Error msg written here */
);

这就是执行一条sql 语句的函数。
第1个参数不再说了,是前面open函数得到的指针
第2个参数const char *sql是一条sql 语句,如:CREATE TABLE T(SNo char(8),SN text);
第3个参数sqlite3_callback 是回调,当这条语句执行之后,sqlite3会去调用你提供的这个函数
第4个参数void*是你所提供的指针,你可以传递任何一个指针参数到这里,这个参数最终会传到回调函数里面,如果不需要传递指针给回调函数,可以填NULL
第5个参数char** errmsg 是错误信息。
注意: 是指针的指针。sqlite3里面有很多固定的错误信息。执行sqlite3_exec 之后,执行失败时可以查阅这个指针直接cout<< errmsg 得到一串字符串信息,这串信息告诉你错在什么地方。sqlite3_exec函数通过修改你传入的指针的指针,把你提供的指针指向错误提示信息,这样sqlite3_exec函数外面就可以通过这个char*得到具体错误提示。

说明:通常,sqlite3_callback 和它后面的void*这两个位置都可以填NULL。填NULL表示你不需要回调。比如你做insert 操作,做delete操作,就没有必要使用回调。而当你做select 时,就要使用回调,因为sqlite3 把数据查出来,得通过回调告诉你查出了什么数据。

exec 的回调
typedef int(sqlite3_callback)(void,int,char**,char**);
你的回调函数必须定义成上面这个函数的类型.
比如:int LoadMyInfo(void* para,intn_column,char** column_value,char** column_name);
其中para是你在sqlite3_exec 里传入的void*参数通过para参数
n_column是这一条记录有多少个字段(即这条记录有多少列)
char** column_value 是个关键值,查出来的数据都保存在这里
char** column_name 跟column_value是对应的,表示这个字段的字段名称

0 0