2019独角兽企业重金招聘Python工程师标准>>>

回调函数的格式如下:

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("%s\t%s\n\n", col[i], argv[i]);

}

转载于:https://my.oschina.net/u/193027/blog/386637

在 SQLite3 中使用回调函数相关推荐

  1. Java中的回调函数学习-深入浅出

    Java中的回调函数一般来说分为下面几步: 声明回调函数的统一接口interface A.包括方法callback(); 在调用类caller内将该接口设置为私有成员private A XXX; 在c ...

  2. 理解与使用Javascript中的回调函数

    在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被"存储"在变量中,能作为函数参数被传递,能在函数中被创建, ...

  3. 理解javascript中的回调函数(callback)【转】

    在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实 ...

  4. 关于javascript中的回调函数

    关于javascript中的回调函数 原文地址:http://blog.csdn.net/sicluoyi/article/details/1737969 考虑一个这样的例子: 假如某个项目的底层和高 ...

  5. 【JavaScript】理解与使用Javascript中的回调函数

    在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被"存储"在变量中,能作为函数参数被传递,能在函数中被创建, ...

  6. memcpy函数_如何理解c语言中的回调函数

    在计算机程序设计中,回调函数,或简称回调,是指通过函数参数传递到其它代码的,某一块可执行代码的引用.这一设计允许了底层代码调用在高层定义的子程序. 这段话不是那么好理解,不同语言实现回调的方式有些许不 ...

  7. keras中的回调函数

    keras训练 fit(self, x, y, batch_size=32, nb_epoch=10, verbose=1, callbacks=[], validation_split=0.0, v ...

  8. 什么是JavaScript中的回调函数?

    This article gives a brief introduction to the concept and usage of callback functions in the JavaSc ...

  9. vue 执行函数this_在vue中使用回调函数,this调用无效的解决

    let self = this //使用新变量替换this,以免this无效 //updatestudentinfotoserver是一个将本身部分数据异步上传的接口,接收三个参数,其中第一个是数据, ...

最新文章

  1. 什么是OpenMAX技术分析OpenMAX
  2. Web前沿—HTML5 Form Data 对象的使用
  3. 功能式Python中的探索性数据分析
  4. 第四章:Spring AOP
  5. 服务器 .err文件,IIS 关闭HTTPERR(IIS日志)的方法
  6. 软件的极简主义的三个大敌:配置文件,冗余的参数,和大量复杂的接口。
  7. Installing OwnCloud 9 on Debian 8
  8. 如何创建和配置SQL Server代理警报
  9. idea中git替换,推送到新的github或者gitlab上面
  10. 1月17日云栖精选夜读:阿里云云数据库开了一个未来大会,谈了谈2038年的数据库趋势...
  11. Wannafly挑战赛26 A B
  12. 字符串运用-密码截取
  13. 淘宝广告数据分析实战!(附代码和100W数据源)
  14. 数字藏品:传承优秀传统文化的新载体
  15. Linux 关闭 开启防火墙命令
  16. 股票证券交易系统架构分析与设计
  17. 十大宽带共享组网方式(转)
  18. linux内核调试环境搭建-
  19. 高斯消元法(高斯·约当消元法)(浮点)
  20. 网络游戏外挂编写原理

热门文章

  1. Object(包装对象)
  2. mysql bundle 安装_阿里云服务器下安装MySQL (Bundle压缩包 安装)
  3. 对文件指定行进行编辑和保存 linux,linux 文本编辑命令grep sed awk(转)
  4. InkImageDataSetGenerator-开源一个可用于机器学习的书写轨迹图片生成的小工具
  5. STA 137 Topics covered this week
  6. jmeter接口测试----8用户定义的变量
  7. 【Docker】Segmentation Fault or Critical Error encountered. Dumping core and abort
  8. Fragment:关于Avoid non-default constructors in fragments的错误
  9. 矩阵经典题目六:poj 3070 Fibonacci
  10. Codechef之CodeCraft: IIIT Hyderabad