sqlite3入门之sqlite3_get_table,sqlite3_free_table

Posted icefree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlite3入门之sqlite3_get_table,sqlite3_free_table相关的知识,希望对你有一定的参考价值。

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:错误信息;
  • void main(void) 
       ......
       rc = sqlite3_get_table(db, "SELECT * FROM RELAY", &dbresult, &nRow, &nColum, &zErrMsg);
        if(rc == SQLITE_OK) 
            index = nColum;
            for(i = 0; i < nRow; i++) 
                for(j = 0; j < nColum; j++) 
                    printf("zidanming:%s, ziduanzhi:%s\n", dbresult[j], dbresult[index]);
                     ++index;
                
            
        
    sqlite3_free_table(dbresult);

    ......
     

sqlite3_free_table

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

以上是关于sqlite3入门之sqlite3_get_table,sqlite3_free_table的主要内容,如果未能解决你的问题,请参考以下文章

Django入门之数据库相关

iOS之Sqlite3封装

python之-sqlite3

python 之sqlite3库学习

Python之sqlite3

Python基于 sqlite3 的数据库操作(零基础入门教程)