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是对应的,表示这个字段的字段名称
- Sqlite3基础
- SQLite3基础
- SQLite3 基础
- SQLite3 使用基础
- sqlite3数据库基础语句
- sqlite3使用基础
- sqlite3的基础语言
- QT+SQLite3 基础
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Android-SQLite3 超基础入门
- Problem A: [NOIP2005]青蛙过河 T2
- Codeforces Round #303 (Div. 2) A B C D
- Mogon - 简单操作
- nginx的搭建详解
- Redis集群方案,Codis安装
- Sqlite3基础
- javac命令和jar命令
- 返回List 形式的数据
- login_pwd.xml
- leetcode--Pascal's Triangle II
- Redis存储Tomcat集群的Session
- jsp中文乱码
- 游戏开发学习笔记-1.空白窗口
- 微软“失落的十年”