2024年5月28日发(作者:)
SQLite在WINCE上的使用
--------------SQLite在VC++的应用
SQLite的简介
SQLite是一个轻量级、跨平台的关系型数据库。既然号称关系型数据库,支持SQL92
标准中常用比如视图、事务、触发器等。
◇轻量级:SQLite和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不
存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态库,就可以享受
它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows下487KB、
Linux下347KB。
◇绿色软件:SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,
使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。
◇单一文件:所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、
等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。
◇跨平台/可移植性:除了主流操作系统,SQLite还支持了很多冷门的操作系统。它对
很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm、VxWorks等)的支持。
官方网站: /
SQLite在VC中的应用
1. 生成DLL和LIB文件
---新建VS项目,应用程序类型选择:Dll, 同时钩上“Empty project”;
--- 将sqlite3.5.1中所有源代码均加入工程:
(/project/?group_id=88393 也可以下载)。
注意:需要将tclsqlite.c和shell.c去掉。其中tclsqlite.c用于生成基于tcl的api,如
果要编译,这需要另外下 载tcl.h;shell.c用于生成命令行模式的,如果是静态库
形式则可以选择
---在VS编辑界面中选中项目(而不是文件),项目->属性->C/C++->预编译头-> 创
建/使用预编译头: 选择不使用预编译头。
---选中项目(而不是文件),项目->属性->链接器->输入-> 模块定义文件: 输入
“”。
---编译即可生成DLL和LIB文件。(编译方法:VS编辑界面中的“生成”)
(编译成功后,在你的项目文件下的ZY2410_SDK (ARMV4I)/debug中可以找到生成的DLL和LIB
文件。)
2. 下载CppSQLite3U,它是对Sqlite原有纯C的api进行OO的C++的封装。主要封
装以下几个类:
• CppSQLite3DB 数据库类,用于新建数据库,打开关闭链接,执行DDL和DML。
•
•
•
CppSQLite3Statement 用于执行参数化的SQL。CppSQLite3DB 可以执行SQL但是
不支持参数化。
CppSQLite3Query 用于读出执行Select后的查询结果。
CppSQLite3Exception 用于捕捉异常。
3. 实现对数据库的基本操作
• 创建VC++2005|智能设备|MFC智能设备应用程序, 把编译SQLITE生成的
DLL、LIB和sqlite3.h 放到项目的文件夹下,并添加到工程中,并把项目=》
•
•
属性=》链接器=》输入=》附加依赖项:输入SQLITE的lib文件名。
将CppSQLite3U的cpp和h文件也放在工程目录下并添加到工程中。
创建如下界面:
注:在创建第四个框时,右击在出现的添加变量中将变量名改为m_list.
• 代码实现如下:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
(2)创建表及插入记录:
void Cvcsqlite2Dlg::OnBnClickedBtnTable()
(注意要在***中引用文件:
#include ""
#include "stdafx.h"
#include "vcsqlite2.h"
#include "vcsqlite2Dlg.h"
#include "CppSQLite3U.h ")
(1)创建数据库:
void Cvcsqlite2Dlg::OnBnClickedBtnCredb()
{
CppSQLite3DB db;
(L"My "); //打开或新建数据库
MessageBox(_T("SUCCESS"),_T("INFORMATION"),MB_OK);
();
}
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
{
CppSQLite3DB db;
(L"My ");
//新建表
CppSQLite3Query q = ery(L"create table student(sno int, sname
nvarchar(6), sage int)");
//插入数据
q=ery(L"insert into student values (1, 'hello', 20)");
MessageBox(_T("SUCCESS"),_T("INFORMATION"),MB_OK);
();
}
(3)查询记录:
void Cvcsqlite2Dlg::OnBnClickedBtnSelect()
{ CppSQLite3DB db;
(L"My ");
CppSQLite3Query q = ery(L"select * from student"); //查询
CString strTemp;
while (!())
{(_T("%s-%s-%s"),alue(0),alue(1),alue(2));
m_ing(strTemp);
w();
}
ze();
();
}
4、编译中如果出现关于_tstoi的错误,将其改为_wtoi。编译通过之后,启动调试.
注意:要把生成的dll放在实验箱与工程同一目录下(即program files里面--编译生成
的.exe文件的默认路径),否则可能会出现如下错误哦:
5、连接实验箱调试即可(网线连接或是USB连接都可)。


发布评论