zoukankan      html  css  js  c++  java
  • 在 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]);
        }

    女孩不哭(QQ:191035066)@2012-05-29 13:13:48 @ http://www.cnblogs.com/nbsofer

  • 相关阅读:
    redis API使用说明
    javascript (js)判断手机号码中国移动、中国联通、中国电信
    Spring MVC 框架搭建及详解
    Oracle 树操作(select…start with…connect by…prior)
    工作流开发总结
    jQuery 关于ScrollableGridPlugin.js(固定表头)插件的逐步解析
    关于@RequestBody关键字
    linux中的目录的作用
    接口和抽象类的区别
    jdbc操作和开启事务
  • 原文地址:https://www.cnblogs.com/memset/p/2523807.html
Copyright © 2011-2022 走看看