sqlite3_get_table

  • sqlite3_get_table函数原型:
  • int sqlite3_get_table(
    sqlite3 *db, /* An open database */
    const char *zSql, /* SQL to be evaluated */
    char ***pazResult, /* Results of the query */
    int *pnRow, /* Number of result rows written here */
    int *pnColumn, /* Number of result columns written here */
    char **pzErrmsg /* Error msg written here */
    );
    void sqlite3_free_table(char **result);
  • sqlite3_get_table主要是用于非回调的方式进行select查询,参数如下;
  • 参数1:打开数据库得到的指针;
  • 参数2:一条sql语句,跟sqlite3_exec中一样;
  • 参数3:查询的数据结果,他是一个指针数组,内存分布为:字段名称,后面是紧接着是每个字段的值;
  • 参数4:查询到的数据条数,(行数);
  • 参数5:查询到的字段数,(列数);
  • 参数6:错误信息;
  • char *str_he = "合";
    char *str_fen = "分"; //初始化表
    for(rc = ; rc < ; rc++) {
    sql = sqlite3_mprintf("INSERT INTO RELAY VALUES ('%d', '%q', '%q', '2019-7-12');", rc, str_he, str_fen);
    sqlite3_exec(db, sql, , , &zErrMsg);
    } rc = sqlite3_get_table(db, "SELECT * FROM RELAY", &dbresult, &nRow, &nColum, &zErrMsg);
    if(rc == SQLITE_OK) {
    index = nColum;
    for(i = ; i < nRow; i++) {
    for(j = ; j < nColum; j++) {
    printf("%d--%s : %s\n", i, dbresult[j], dbresult[index++]);
    // ++index;
    }
    printf("----------------------------------------------\n");
    }
    }
    sqlite3_free_table(dbresult);
  • 输出结果:
    --ID :
    --C_STATUS : 合
    --W_STATUS : 分
    --TIME : --
    ----------------------------------------------
    --ID :
    --C_STATUS : 合
    --W_STATUS : 分
    --TIME : --
    ----------------------------------------------
    --ID :
    --C_STATUS : 合
    --W_STATUS : 分
    --TIME : --
    ----------------------------------------------
    。。。。。。
    。。。。。。
    ----------------------------------------------
    --ID :
    --C_STATUS : 合
    --W_STATUS : 分
    --TIME : --
    ----------------------------------------------
    --ID :
    --C_STATUS : 合
    --W_STATUS : 分
    --TIME : --
    ----------------------------------------------
  • 从输出结果可以看出内存分布如下:

sqlite3_free_table

  • 用于释放保存查询内容的指针数组;

sqlite3入门之sqlite3_get_table,sqlite3_free_table的更多相关文章

  1. python sqlite3 入门 (视频讲座)

    python sqlite3 入门 (视频讲座) an SQLite mini-series! - Simple Databases with Python 播放列表: YouTube https:/ ...

  2. sqlite3 入门

    SQLite3 C语言API入门下载SQLite3 我们下载sqlite源码包,只需要其中的sqlite3.c.sqlite.h即可.最简单的一个创建表操作#include <stdio.h&g ...

  3. Sqlite3入门简记

    一,安装Sqlite3 1.入门时看http://www.runoob.com/sqlite/sqlite-intro.html,说的简单,但是适合入门 2.在终端输入sqlite3,没有返回信息,表 ...

  4. sqlite3入门之sqlite3_mprintf

    sqlite3_mprintf sqlite3_mprintf()函数原型: char *sqlite3_mprintf(const char*,...); sqlite3_mprintf()的作用是 ...

  5. sqlite3入门之sqlite3_open,sqlite3_exec,slite3_close

    sqlite3_open sqlite3_open函数原型: int sqlite3_open( const char *filename, /* Database filename (UTF-8) ...

  6. sqlite3数据库 sqlite3_get_table

    上一篇介绍的sqlite3_exec 是使用回调来执行对select结果的操作.还有一个方法可以直接查询而不需要回调.但是,我个人感觉还是回调好,因为代码可以更加整齐,只不过用回调很麻烦,你得声明一个 ...

  7. sqlite3使用入门

    sqlite的安装 1. 首先是下载sqlite,可以该页面下载:http://www.sqlite.org/download.html 当前的最新版本为:sqlite-shell-win32-x86 ...

  8. SQLite3简单入门及C++ API

    转载请注明出处:http://www.cnblogs.com/StartoverX/p/4660487.html 项目用到SQLite3,简单记录一下. MySQL不同,SQLite3的数据库基于文件 ...

  9. SQLITE3 使用总结

    转自: http://blog.chinaunix.net/uid-8447633-id-3321394.html 前序: Sqlite3 的确很好用.小巧.速度快.但是因为非微软的产品,帮助文档总觉 ...

随机推荐

  1. Bladex-Boot使用Postman调用服务说明

    一:GitBladex-Boot项目,并启动服务 二:打开Postman 三:使用Post,调用http://localhost/blade-auth/oauth/token/ 配置:Header中增 ...

  2. tomcat一闪而过,无法开启

    记事本打开startup.bat,找到最后一句话::end,我们知道end表示结束的意思,:end是一个标记,我们在后面加上一句pause,然后启动该脚本 正常情况下回像下图显示 如果一闪而过的话,可 ...

  3. node版本切换工具n的使用介绍

    全局安装 npm install -g n mac的安装目录/usr/local/n/versions/node/13.2.0 因此首先在/usr/local/创建目录n,修改权限为普通访问权限,这样 ...

  4. python:日期计算

    python语言中的datetime模块可以利用其中的方法获取不同的日期,比如获取当前日期.明天.昨天.上个月.下个月和明年.下面利用几个实例说明这些日期的获取方法,操作如下: 第一步,利用datet ...

  5. polynomial&generating function学习笔记

    生成函数 多项式 形如$\sum_{i=0}^{n}a_i x^i$的代数式称为n阶多项式 核函数 {ai}的核函数为f(x),它的生成函数为sigma(ai*f(i)*x^i) 生成函数的加减 {a ...

  6. springboot统一返回json数据格式并配置系统异常拦截

    本文链接:https://blog.csdn.net/syystx/article/details/82870217通常进行前后端分离开发时我们需要定义统一的json数据交互格式并对系统未处理异常进行 ...

  7. 【LeetCode】最长回文子串【动态规划或中心扩展】

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad"输出: "bab"注意: " ...

  8. 24 枚举Enum类

    引用声明:部分内容来自文章:http://c.biancheng.net/view/1100.html 枚举Enum类是java.lang下的一个类. 枚举的命名规范 枚举名:大驼峰 枚举值:全大写, ...

  9. Ali-Tomcat 安装

    通过在 Eclipse 安装 Tomcat4e 插件,或者在 Intellij Idea 安装配置 Ali-tomcat,可以快 速方便地启动并调试基于 EDAS 服务化框架 HSF 开发的应用. 1 ...

  10. Jmeter参数化(_csvread函数、CSV Data Set Config)

    方法一.Jmeter自带的函数助手——_CSVRead函数 1.数据准备:先在excel存储数据,保存格式选择csv格式.或在记事本存储数据,列之间用英文逗号分隔,保存为txt 2.使用_csvrea ...