博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在 SQLite3 中使用回调函数
阅读量:6820 次
发布时间:2019-06-26

本文共 1173 字,大约阅读时间需要 3 分钟。

回调函数的格式如下: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

女孩不哭(QQ:191035066)@2012-05-29 13:13:48 @

转载地址:http://fvozl.baihongyu.com/

你可能感兴趣的文章