在 SQLite3 中使用回调函数

回调函数的格式如下:

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]);

}

时间: 2024-10-08 08:50:12

在 SQLite3 中使用回调函数的相关文章

JavaScript中的回调函数

在学习JavaScript的过程中遇到了很多,使用到回调函数的例子,出现了许多疑问,就由一个栗子开始吧: 在JavaScript中接触的第一个回调函数是在setInterval()和setTimeout()中出现的: 1 var num = 10; 2 3 var interValId = setInterval(function (){ 4 console.log(num); 5 num--; 6 if(num==0){ 7 clearInterval(interValId); 8 } 9 }

hibernateTemplate中的回调函数

hibernateTemplate中的回调函数:可以发现在hibernateTemplate类中所有对数据库的操作实现都是利用的回调函数hibernateTemplate中回调函数源码: public <T> T execute(HibernateCallback<T> action) throws DataAccessException { return doExecute(action, false); } public <T> T executeWithNativ

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

在javascript中回调函数非常重要,它们几乎无处不在.像其他更加传统的编程语言都有回调函数概念,但是非常奇怪的是,完完整整谈论回调函数的在线教程比较少,倒是有一堆关于call()和apply()函数的,或者有一些简短的关于callback的使用示例. 函数也是对象 想弄明白回调函数,首先的清楚地明白函数的规则.在javascript中,函数是比较奇怪的,但它确确实实是对象.确切地说,函数是用 Function()构造函数创建的Function对象.Function对象包含一个字符串,字符串

Javascript 中的回调函数和递归函数简单实际分析学习

Javascript 中的回调函数和递归函数简单实际分析学习 1 回调函数 所谓回调函数简单理解就是将一个函数做为参数传递给其他的函数供其使用.(只是在js中,因为其它的语言中有指针这个概念). 举一个简单的例子,当我们在统计账单的时候就要整理材料这些,然后就需要计算器,计算器我们想象成为一个可以实现计算的函数.统计账单是另外的另一个函数,当统计账单的时候就会需要计算器这个函数的支持,其实这就是一个简单的回调.可以按这个理解. 下来我借用网上的一个例子: //先定义一个函数fun1 functi

理解和使用 JavaScript 中的回调函数

原文:http://javascriptissexy.com/ 在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实际上是一种对象,它可以"存储在变量中,通过参数传递给(别一个)函数(function),在函数内部创建,从函数中返回结果值". 因为function是内置对象,我们可以将它作为参数传递给另一个函数,延迟到函数中执行,甚至执行后

Javascript中的回调函数和匿名函数的回调

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* * 匿名函数自调的意义: 1.营造了一个封闭的空间 2.防止变量冲突 3.有选择性的对外开发(第三方框架都是对js这样封装的) */ //===

类中的回调函数

失败原因 由于类的成员函数有隐含的this指针传递,从而导致一个CALLBACK型的成员函数安装时函数参数个数不匹配. 解决方法 1)将回调函数挪出类外,并声明为友元 2)将回调函数生命为静态成员函数(使用回调函数的某个参数传递当前对象的this指针) 类中的回调函数,码迷,mamicode.com

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

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因为函数是第一类对象,我们可以在Javascript使用回调函数.在下面的文章中,我们将学到关于回调函数的方方面面.回调函数可能是在Javascript中使用最多的函数式编程技巧,虽然在字面上看起来它们一直一小段Javascript或者jQuery代码,但是对于许多开发者来说它任然是一个谜.在阅读本文

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

在Javascript中,函数是第一类对象,这意味着函数可以像对象一样按照第一类管理被使用.既然函数实际上是对象:它们能被“存储”在变量中,能作为函数参数被传递,能在函数中被创建,能从函数中返回. 因为函数是第一类对象,我们可以在Javascript使用回调函数.在下面的文章中,我们将学到关于回调函数的方方面面.回调函数可能是在 Javascript中使用最多的函数式编程技巧,虽然在字面上看起来它们一直一小段Javascript或者jQuery代码,但是对于许多开发者来说 它任然是一个谜.在阅读