基于sqlite3数据库的C、C++开发-简单
2013-05-16 09:28
316 查看
基于sqlite3数据库的C、C++开发-简单
Sqlite3是文件数据库,创建数据库后将在本地生成.db为后缀的数据库文件,本人使用SQLite Maestro.exe
工具生成数据库文件,此工具使用方法简单,详细请百度。
此数据库的源码可以从官方网站直接下载使用:sqlite3.c sqlite3.h,本文直接将源码添加在我们的工程当中。
首先引入头文件#include "sqlite3.h"
int main()
{
sqlite3 *db = NULL;//声明数据库对象
int res = sqlite3_open(“test.db”,&db); //打开数据库,第一个参数为数据库文件的路径,如果不存在创建
if (res != SQLITE_OK) {
printf("Open db failed.\n");
return -1;
}
{
char **dbResult; //用于保存查询结果
int nRow,nColumn;//行数,列数
char *errmsg=NULL;//错误信息
int index;
char sql[256]={0}; //sql语句
int i;
snprintf(sql,sizeof(sql),"%s","select id,name from t1");//假设数据库中已存在表t1
printf("sql=%s\n",sql);
res = sqlite3_get_table(db,sql,&dbResult,&nRow,&nColumn,&errmsg);
if (res != SQLITE_OK) {
printf("select failed.\n");
printf("res=%d,errmsg=%s.\n",res,errmsg);
sqlite3_free(errmsg);//释放内存
sqlite3_close(&db);//关闭数据库
return -1;
}
sqlite3_free(errmsg);//释放内存
printf("nRow=%d,nColumn=%d\n",nRow,nColumn);
index = nColumn; //跳过表头 index=0;不跳过表头
//输出内容
for(i=0;i<nRow;i++) {
printf("id=%d,name=%s\n",atoi(dbResult[index]),dbResult[index+1]);
index += nColumn;
}
sqlite3_free_table(dbResult); //释放空间
}
sqlite3_close(&db);//关闭数据库
return 0;
}
此例仅仅是打开数据库,取出内容,输出内容,关闭数据库等操作
Sqlite3是文件数据库,创建数据库后将在本地生成.db为后缀的数据库文件,本人使用SQLite Maestro.exe
工具生成数据库文件,此工具使用方法简单,详细请百度。
此数据库的源码可以从官方网站直接下载使用:sqlite3.c sqlite3.h,本文直接将源码添加在我们的工程当中。
首先引入头文件#include "sqlite3.h"
int main()
{
sqlite3 *db = NULL;//声明数据库对象
int res = sqlite3_open(“test.db”,&db); //打开数据库,第一个参数为数据库文件的路径,如果不存在创建
if (res != SQLITE_OK) {
printf("Open db failed.\n");
return -1;
}
{
char **dbResult; //用于保存查询结果
int nRow,nColumn;//行数,列数
char *errmsg=NULL;//错误信息
int index;
char sql[256]={0}; //sql语句
int i;
snprintf(sql,sizeof(sql),"%s","select id,name from t1");//假设数据库中已存在表t1
printf("sql=%s\n",sql);
res = sqlite3_get_table(db,sql,&dbResult,&nRow,&nColumn,&errmsg);
if (res != SQLITE_OK) {
printf("select failed.\n");
printf("res=%d,errmsg=%s.\n",res,errmsg);
sqlite3_free(errmsg);//释放内存
sqlite3_close(&db);//关闭数据库
return -1;
}
sqlite3_free(errmsg);//释放内存
printf("nRow=%d,nColumn=%d\n",nRow,nColumn);
index = nColumn; //跳过表头 index=0;不跳过表头
//输出内容
for(i=0;i<nRow;i++) {
printf("id=%d,name=%s\n",atoi(dbResult[index]),dbResult[index+1]);
index += nColumn;
}
sqlite3_free_table(dbResult); //释放空间
}
sqlite3_close(&db);//关闭数据库
return 0;
}
此例仅仅是打开数据库,取出内容,输出内容,关闭数据库等操作
相关文章推荐
- 【数据库开发】如何创建MySQL数据库连接池(一个基于libmysql的MySQL数据库连接池示例(C/C++版))
- MYSQL的简单封装,学习基于托管的C++开发
- 基于Visual Stdio 2010的C++开发数据库基础之ADO数据库连接方法(二)
- 基于MFC框架的C++游戏开发(五)定时器和简单动画
- 基于Visual Stdio 2010的C++开发数据库基础之ADO(一)
- 基于Java的简单数据库设计生成工具(生成Excel文档)
- 蛙蛙推荐:简化基于数据库的DotNet应用程序开发
- 基于.NET的Windows数据库应用程序开发的心路历程
- sqlite3如何判断一个表是否已经存在于数据库中c++
- 只有VS2010如何做基于SQLEXpre随时数据库的开发?
- 基于Eclipse c/C++开发环境的Fedora GCC程序编辑
- 基于Vs2013 C++连接 2010Access 数据库
- (3)uniGUI for C++ builder手机应用开发之ORACLE数据库访问与操作
- oracle9i spatial 开发 occi (基于oci的c++接口)
- C++基于TCP/IP简单的客户端、服务器通信程序实例
- IOS 基于AV Foundation框架开发简单音乐播放器
- C++基于TCP/IP简单的客户端、服务器通信程序实例
- 基于lucene的案例开发:纵横小说数据库操作
- Magento二次开发4-最简单的数据库安装和升级
- 基于C++的数据库设计源代码