1.SQLite数据查询方式
总的来说,SQLite的数据库查询有以下两种方式:
- 回调方式
查询出的数据通过在注册的回调函数中给出,每一次回调给出一条记录。 - 查询表方式
该模式在下一篇介绍
2.回调方式介绍
- 回调模式基本特点
回调数据是采用阻塞方式的进行的,查询语句调用后,结果在回调函数中给出;当数据回调结束后,才会继续向下执行;
回调数据的多次性,一次回调只给出一条,N调数据需要回调N次。 - 回调方式查询的API
int sqlite3_exec(
sqlite3*,
const char *sql,
int (*callback)(void*,int,char**,char**),
void *,
char **errmsg
);
注意:上述API的具体信息参考上一节:SQLite学习笔记(四)– 数据表的定义、修改与删除(C++实现)
3.回调函数介绍
- 函数原型
typedef int (*sqlite3_callback)(void *pUserData, int argc, char **argv, char **azColName);
- 参数列表
void *pUserData —- 用户数据,由sqlite3_exec()函数的第四个参数传入
int argc —- 表的列数,也就是本次回到得到的数据个数
char **argv —- 查询结果的数据指针数组,argv[i]可以得到每一个数据,i为下标,从0开始
char **azColName —- 执行字段名的指针数组,azColName[i]可以得到每一个数据,i为下标,从0开始 - 返回值
int型数值 —- 返回0,将继续查询剩余数据;返回1,则中断查询。
注意:
SQLite查询出的数据是UTF8格式,如果遇到中文字段,必须将其转换为国标形式,才能正常显示。
4.代码实例
- 代码说明
本例主要说明如何利用回调方式查询数据。 - 测试平台
1.开发语言:C++
2.开发工具:VS2015
3.操作系统:Win7 X64 - 测试数据说明
测试表为Stud