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入门之sqlite3_get_table,sqlite3_free_table-LMLPHP

sqlite3_free_table

  • 用于释放保存查询内容的指针数组;
05-22 23:48