SQLITE 源码在自己工程中的使用
来源:互联网 发布:澳门网络真人博客官网 编辑:程序博客网 时间:2024/05/30 05:42
为什么会有这种需求,因为sqlite的源码是纯C语言,对于不想额外安装exe的场合,可以把源码嵌入到任何你需要的工程中来使用。
首先,去官网下载到sqlite的源码,http://www.sqlite.org/download.html。下载sqlite-amalgamation-3160200.zip版本就可以,其中需要的是.h和.c两个文件。将这两个文件分别加到你工程的头文件和源文件内。
在需要使用的地方包含以下头文件#include “sqlite3.h”
一、新建(打开)一个数据库
函数:sqlite3_open();
返回值:函数执行结果
举例:
sqlite3 *db;
int nResult = sqlite3_open("test.db", &db);
if(nResult == SQLITE_OK)
{
qDebug() << "open success";
}
else {
qDebug() << "open fail";
}
如果test.db数据库存在,则打开;如果不存在则新建一个名为test的数据库。
二、创建表
函数:sqlite3_exec();
返回值:函数执行结果
举例:
char* errmsg;
char* strSql;
nResult = sqlite3_exec(db,"create table stflag_tab(id integer primary key autoincrement,name varchar(100))",NULL,NULL,&errmsg);
if(nResult == SQLITE_OK)
{
qDebug() << "create success";
}
else {
qDebug() << "create fail";
}
其中 errmsg可以返回执行错误的具体内容。
也可这样写:
strSql = “create table stflag_tab(id integer primary key autoincrement,name varchar(100))”;
nResult = sqlite3_exec(db, strSql, NULL, NULL, &errmsg);
三、增加表中数据
函数:sqlite3_exec();
返回值:函数执行结果
举例:
strSql = "insert into stflag_tab values ('3', 'xx')";
nResult = sqlite3_exec(db,strSql, NULL,NULL,&errmsg);
nResult = sqlite3_exec(db,"insert into stflag_tab values ('4', 'yrx')", NULL,NULL,&errmsg);
if(nResult == SQLITE_OK)
{
qDebug() << "insert OK";
}
else {
qDebug() << "insert fail";
qDebug() << errmsg;
}
四、更改表中数据
函数:sqlite3_exec();
返回值:函数执行结果
举例:
strSql = "update stflag_tab set name ='ruwei' where id ='4'";
nResult = sqlite3_exec(db,strSql, NULL,NULL,&errmsg);
if(nResult == SQLITE_OK)
{
qDebug() << "update OK";
}
else {
qDebug() << "update fail";
qDebug() << errmsg;
}
五、查询数据
函数:sqlite3_get_table();sqlite3_free_table(),查询完了要释放
返回值:函数执行结果
举例:
char** pResult;
int nrow;
int ncolumn;
strSql = "select * from stflag_tab ";nResult = sqlite3_get_table(db, strSql, &pResult, &nrow, &ncolumn, &errmsg);
int nindex =ncolumn;
if(nResult == SQLITE_OK)
{
qDebug() << "select OK";
for(int i=0; i<nrow; i++)
{
for(int j=0; j< ncolumn;j++)
{
qDebug() << pResult[nindex++];
}
}
}
else {
qDebug() << "select fail";
qDebug() << errmsg;
}
sqlite3_free_table(p);
注意:
六、删除数据
函数:sqlite3_exec();
返回值:函数执行结果
举例:
strSql = "DELETE FROM stflag_tab";
nResult = sqlite3_exec(db,strSql, NULL,NULL,&errmsg);
if(nResult == SQLITE_OK)
{
qDebug() << "delete OK";
}
else {
qDebug() << "delete fail";
qDebug() << errmsg;
}
执行完所有操作后,记得关闭数据库sqlite3_close(db)。
最后附上完整的Demo,是在Qt中编译的,不过看一眼就能明白。上述代码全部亲自验证通过。
http://download.csdn.net/detail/sinat_30440627/9739232
0 0
- SQLITE 源码在自己工程中的使用
- 怎样在一个工程中使用sqlite
- SQLite 在 Java中的使用
- SQLite 在 Java中的使用
- SQLite在swift中的使用
- SQLite在Java中的使用
- Sqlite在android中的使用
- SQLite在iOS中的使用
- 在自己的工程中继承别的工程中的类,
- SharedPreference在工程中的使用
- redis在工程中的使用
- SQLite数据库(1):JAVA工程中的使用
- SQLite数据库(2):ANDROID工程中的使用
- Log4j日志在java项目中的使用(附工程源码)
- Log4j日志在java项目中的使用(附工程源码)
- Log4j日志在java项目中的使用(附工程源码)
- Log4j日志在java项目中的使用(附工程源码)
- Win8 sqlite 数据库在 winrt 中的使用
- HDU 1229 还是A+B
- SCOI2010序列操作--线段树迷之维护
- [CSS点滴]标签嵌套规则
- SSH整合 ClassCastException
- 2.Activity知识总结
- SQLITE 源码在自己工程中的使用
- 单点登录
- 两个非常不错的在线pdf转epub的网站,没有上传大小限制
- BZOJ 3832: [Poi2014]Rally拓扑排序
- android侧滑删除列表
- 3.service知识点总结
- Linux命令——文件管理命令(部分常用的)
- IO流_编译期异常和运行期异常的区别
- (转)Android 消息机制学习