加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在 SQLite3 中使用回调函数

发布时间:2020-12-12 23:48:53 所属栏目:百科 来源:网络整理
导读:回调函数的格式如下 : int sqlite_callback( void * pv, /* 由 sqlite3_exec() 的第四个参数传递而来 */ int argc, /* 表的列数 */ char ** argv, /* 指向查询结果的指针数组 , 可以由 sqlite3_column_text() 得到 */ char ** col /* 指向表头名的指针数组 ,

回调函数的格式如下:

int sqlite_callback(

void* pv,/* sqlite3_exec() 的第四个参数传递而来 */

int argc,/* 表的列数 */

char** argv,/* 指向查询结果的指针数组,可以由 sqlite3_column_text() 得到 */

char** col /* 指向表头名的指针数组,可以由 sqlite3_column_name() 得到 */

);


参数格式:

传给sqlite3_exec的回调函数,用来显示查询结果

对每一条查询结果调用一次该回调函数

参数:

pv:sqlite3_exec传递的初始化参数

argc:表头的列数

col:表头的名字数组指针

argv:表头的数据数组指针

返回值:

1:中断查找

0:继续列举查询到的数据

示例表:

+-----------------------------------+

| id | pic | data(16进制数据) |

|-----------------------------------|

| 1 | a.jpg | 00 00 00 ... |

|-----------------------------------|

| 2 | b.jpg | XX XX XX |

+-----------------------------------+

对第一行数据:

argc=3 [0]...[2]

argv[0]="1",argv[1]="a.jpg",argv[2]="00 00 00..."(实际16进制数据,非这里显示的字符串形式)

col[0]="id",col[1]="pic",col[2]="data"

说明:

sqlite3_exec() 的回调函数必须按照此格式,当然形参的名字任意.

如果某列的数据类型不是char*,则可以对结果执行相关的转换,:atoi()把结果转换为整数(integer),如果是二进制数据,则可以直接强制类型转换,:(void*)argv[i].

该回调函数有两种返回值类型.

1.返回零:sqlite3_exec() 将继续执行查询.

2.返回非零:sqlite3_exec()将立即中断查询, sqlite3_exec() 将返回 SQLITE_ABORT.

示例:

int i;

for(i=0; i<argc; i++)

{

printf("%st%snn",col[i],argv[i]);

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读