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
绑定参数