当前位置: 代码迷 >> 综合 >> sqlite3数据库操作
  详细解决方案

sqlite3数据库操作

热度:89   发布时间:2024-02-22 03:13:00.0

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

绑定参数