在MFC中使用SQLite
2015-06-24 20:12
267 查看
一、SQLite简介
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。【百度百科】
官方下载地址:http://www.sqlite.org/download.html
二、生成静态链接库sqlite3.lib
1,打开vs2008 ,文件->新建->项目->Visual C++->Win32->Win32 项目,项目名称输入SQLite,点击下一步,应用程序类型选择"静态库",附加选项中取消选中“预 编译头”。
2.将sqlite3.c,sqlite3.h两个文件复制到这个工程目录下,然后在项目中将这两个文件添加进来,然后再编译运行,会出现数据类型转换的一些警告,不用管它,然后在 Debug目录下就会生成一个sqlite3.lib文件。
三、这里推荐一个MFC下SQLite套件:
SQLite_Wrapper : 包含SQLite封装类(SQLite.cpp/SQLite.h)、sqlite3.h头文件、SQLite3.lib编译好静态库,直接拿过来就可用;
SQLiteSpy_1.9.8:可视化查看SQLite数据工具,很好用;
将SQLite_Wrapper中的文件项目中,添加头文件,并加入如下代码:
#include "SQLite_Wrapper/SQLite.h"
#pragma comment(lib,"SQLite_Wrapper/SQLite3.lib")
using namespace SQLite;
这样就能用了。
四、SQLite基本使用
//SQLite3数据库
Database m_db;
//建表
m_db.Open(szPath);
m_db.ExecuteSQL("CREATE TABLE 收件箱(序号 INTEGER PRIMARY KEY autoincrement,发件人 VARCHAR(255),号码 VARCHAR(255),时间 VARCHAR(255),内容 VARCHAR(255));" );
//增加
m_db.ExecuteSQL("INSERT INTO \"收件箱\" VALUES(NULL , 'name', 'num', 'time', 'content');");
//查询所有
TablePtr table;
Table* pTable;
table = m_db.QuerySQL2(_T("SELECT * FROM 收件箱 ORDER BY 序号 DESC"));
//删除
m_db.ExecuteSQL("DELETE FROM \"收件箱\" WHERE \"序号\"=(SELECT min(\"序号\") from \"收件箱\");");
五、参考
SQLite套件:http://download.csdn.net/detail/kimihong/8835713
http://blog.sina.com.cn/s/blog_5758bd010101k0h2.html
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。【百度百科】
官方下载地址:http://www.sqlite.org/download.html
二、生成静态链接库sqlite3.lib
1,打开vs2008 ,文件->新建->项目->Visual C++->Win32->Win32 项目,项目名称输入SQLite,点击下一步,应用程序类型选择"静态库",附加选项中取消选中“预 编译头”。
2.将sqlite3.c,sqlite3.h两个文件复制到这个工程目录下,然后在项目中将这两个文件添加进来,然后再编译运行,会出现数据类型转换的一些警告,不用管它,然后在 Debug目录下就会生成一个sqlite3.lib文件。
三、这里推荐一个MFC下SQLite套件:
SQLite_Wrapper : 包含SQLite封装类(SQLite.cpp/SQLite.h)、sqlite3.h头文件、SQLite3.lib编译好静态库,直接拿过来就可用;
SQLiteSpy_1.9.8:可视化查看SQLite数据工具,很好用;
将SQLite_Wrapper中的文件项目中,添加头文件,并加入如下代码:
#include "SQLite_Wrapper/SQLite.h"
#pragma comment(lib,"SQLite_Wrapper/SQLite3.lib")
using namespace SQLite;
这样就能用了。
四、SQLite基本使用
//SQLite3数据库
Database m_db;
//建表
m_db.Open(szPath);
m_db.ExecuteSQL("CREATE TABLE 收件箱(序号 INTEGER PRIMARY KEY autoincrement,发件人 VARCHAR(255),号码 VARCHAR(255),时间 VARCHAR(255),内容 VARCHAR(255));" );
//增加
m_db.ExecuteSQL("INSERT INTO \"收件箱\" VALUES(NULL , 'name', 'num', 'time', 'content');");
//查询所有
TablePtr table;
Table* pTable;
table = m_db.QuerySQL2(_T("SELECT * FROM 收件箱 ORDER BY 序号 DESC"));
//删除
m_db.ExecuteSQL("DELETE FROM \"收件箱\" WHERE \"序号\"=(SELECT min(\"序号\") from \"收件箱\");");
五、参考
SQLite套件:http://download.csdn.net/detail/kimihong/8835713
http://blog.sina.com.cn/s/blog_5758bd010101k0h2.html
相关文章推荐
- mysql没有oracle 那样一次性把data buffer 数据写入磁盘
- sql server 日期范围
- plsql查询语句占位符提示输入值
- 用mongodb存储日志
- sql中的group by 和 having 用法解析
- memcached常见面试题
- redis学习第一天
- redis做RDB时请求超时case
- 10-【MongoDB入门教程】 Journaling日志机制
- 安全初始化MySql服务器
- 安全初始化MySql服务器
- 使用 SQLiteDatabase 操作 SQLite 数据库
- Oracle 学习笔记
- SQL_存储过程CET递归查询获得树的叶子节点
- 让Mac启动的时候自动启动mysql
- SQLSERVER2008R2之SQL查询语句
- MongoDB 在mac上安装
- SQL Server 一些知识点
- sql except 用法,找两个表中非共同拥有的
- 利用WebMatrix安装drupal7 基于IID+SqlExpress