sqlite3数据库操作

API接口介绍

查询接口

SQLITE_API int sqlite3_get_table(
  sqlite3 *db,          /* An open database,  数据库句柄 */
  const char *zSql,     /* SQL to be evaluated, sql语句 */
  char ***pazResult,    /* Results of the query, 结果指针(需要调用sqlite3_free_table释放) */
  int *pnRow,           /* Number of result rows written here, 行数 */
  int *pnColumn,        /* Number of result columns written here,   列数 */
  char **pzErrmsg       /* Error msg written here, 错误信息(需要调用sqlite3_free释放) */
);

其中,获取到的结果保存在pazResult中,这是一个指针数组的指针,可以理解为 char* pasResult[],是一个指针数组。数组大小是(行+1)*列,即(pnRow+1)*pnColumn。这里行+1,是因为结果的第一行是表头信息。

访问如下:

sql语句访问数据库:
sqlite> select * from history limit 5;
sec          cnt         time      
-----------  ----------  ----------
zhangmazi_0  10          20        
zhangmazi_1  10          20        
zhangmazi_2  10          20        
zhangmazi_3  10          20        
zhangmazi_4  10          20

----------------------------------------
接口访问:

int i = 0;
int j = 0;
for (i = 0; i < nrow; ++i) {
    for (j = 0; j < ncolumn; ++j) {
        printf("[%d-%d]: %s\t", i, j, azResult[i*ncolumn + j]);
    }
    printf("\r\n");
}

输出:
[0-0]: sec	[0-1]: cnt	[0-2]: time	
[1-0]: zhangmazi_0	[1-1]: 10	[1-2]: 20	
[2-0]: zhangmazi_1	[2-1]: 10	[2-2]: 20	
[3-0]: zhangmazi_2	[3-1]: 10	[3-2]: 20	
[4-0]: zhangmazi_3	[4-1]: 10	[4-2]: 20

绑定参数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值