在C语言中得到sqlite数据库中表的内容

本文介绍如何使用C/C++ API与sqlite交互,展示了一个C程序示例,该程序打开名为'zieckey.db'的数据库,执行SQL查询并显示结果。详细解释了编译过程,包括解决找不到库文件的问题,并提供了示例代码和数据库内容。
摘要由CSDN通过智能技术生成

作者: zieckey ( zieckey@yahoo.com.cn )
All Rights Reserved

现在我们来写个C/C++程序,调用 sqlite 的 API 接口函数查询e数据库中表的内容。
下面是一个C程序的例子,显示怎么使用 sqlite 的 C/C++ 接口. 这个函数调用sqlite3_open() 在 22 行打开数据库, sqlite3_get_table 在 40 行执行 SQL 命令, 并且sqlite3_close() 在 47 行关闭数据库连接。
代码:

// name: query_test_1.c
// This file is used to test C/C++ API for sqlite
// Author : zieckey
// 2006/06/28

#include <stdio.h>
#include <sqlite3.h>

int main( void )
{
sqlite3 *db=NULL;
char *zErrMsg = 0;
int nrow = 0, ncolumn = 0;
char **azResult; //二维数组存放结果
int rc;
rc = sqlite3_open("zieckey.db", &db); //打开指定的数据库文件,如果不存在将创建一个同名的数据库文件
if( rc ){
fprintf(stderr, "Can't open database: %s/n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
else printf("open zieckey.db successfully!/n");

//也可以参考 sprintf 的用法
//char *sql = "SELECT SensorParameter FROM SensorData WHERE SensorID = 1";
char *sql = "SELECT * FROM SensorData ";

/*
int sqlite3_get_table(sqlite3*, const char *sql,char***resultp,int *nrow, int *ncolumn,char **errmsg);
result中是以数组的形式存放你所查询的数据,首先是表名,再是数据。nrow ,ncolumn分别为 查询语句返回的结果集的行数,列数,没有查到返回0
*/
sqlite3_get_table(db,sql,&azResult,&nrow,&ncolumn,&zErrMsg);

int i=0;
for(i=0;i<100;i++)
printf("%s/n",azResult[i]);

printf("row:%d column=%d /n",nrow,ncolumn);
printf("zErrMsg = %s /n", zErrMsg);

sqlite3_close(db); //关闭数据库
return 0;
}



编译:# gcc query_test_1.c -o db.out
也许会碰到类似这样的问题:
query_test_1.c:2:21: sqlite3.h: No such file or directory
query_test_1.c: In function `main':
query_test_1.c:6: error: `sqlite3' undeclared (first use in this function)
query_test_1.c:6: error: (Each undeclared identifier is reported only once
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值