wince sqlce 的数据库文件sdf 用什么可以打开编辑?还原sql2005数据库可以吗???

WINCE实验-本地SQLCE数据库实验_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
WINCE实验-本地SQLCE数据库实验
上传于||暂无简介
阅读已结束,如果下载本文需要使用2下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩9页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢我在WinCE设备中有Txt文件 和sdf数据库文件
[问题点数:80分,结帖人wellnj]
我在WinCE设备中有Txt文件 和sdf数据库文件
[问题点数:80分,结帖人wellnj]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年7月荣获微软MVP称号2013年7月 荣获微软MVP称号2012年7月 荣获微软MVP称号2011年7月 荣获微软MVP称号2010年7月 荣获微软MVP称号
2016年8月 硬件/嵌入开发大版内专家分月排行榜第一2016年6月 硬件/嵌入开发大版内专家分月排行榜第一2015年12月 硬件/嵌入开发大版内专家分月排行榜第一2015年7月 硬件/嵌入开发大版内专家分月排行榜第一2015年6月 硬件/嵌入开发大版内专家分月排行榜第一2015年4月 硬件/嵌入开发大版内专家分月排行榜第一2014年12月 硬件/嵌入开发大版内专家分月排行榜第一2014年10月 硬件/嵌入开发大版内专家分月排行榜第一2014年9月 硬件/嵌入开发大版内专家分月排行榜第一2014年8月 硬件/嵌入开发大版内专家分月排行榜第一2014年7月 硬件/嵌入开发大版内专家分月排行榜第一2014年5月 硬件/嵌入开发大版内专家分月排行榜第一2014年4月 硬件/嵌入开发大版内专家分月排行榜第一2014年3月 硬件/嵌入开发大版内专家分月排行榜第一2014年1月 硬件/嵌入开发大版内专家分月排行榜第一2013年12月 硬件/嵌入开发大版内专家分月排行榜第一2013年10月 硬件/嵌入开发大版内专家分月排行榜第一2013年9月 硬件/嵌入开发大版内专家分月排行榜第一2013年8月 硬件/嵌入开发大版内专家分月排行榜第一2013年7月 硬件/嵌入开发大版内专家分月排行榜第一2013年5月 硬件/嵌入开发大版内专家分月排行榜第一2013年4月 硬件/嵌入开发大版内专家分月排行榜第一2013年3月 硬件/嵌入开发大版内专家分月排行榜第一2012年12月 硬件/嵌入开发大版内专家分月排行榜第一2012年11月 硬件/嵌入开发大版内专家分月排行榜第一2011年3月 硬件/嵌入开发大版内专家分月排行榜第一2011年2月 硬件/嵌入开发大版内专家分月排行榜第一2009年10月 硬件/嵌入开发大版内专家分月排行榜第一2009年7月 硬件/嵌入开发大版内专家分月排行榜第一2009年6月 硬件/嵌入开发大版内专家分月排行榜第一2007年12月 硬件/嵌入开发大版内专家分月排行榜第一2003年6月 硬件/嵌入开发大版内专家分月排行榜第一2002年9月 硬件/嵌入开发大版内专家分月排行榜第一2002年8月 硬件/嵌入开发大版内专家分月排行榜第一2002年7月 硬件/嵌入开发大版内专家分月排行榜第一2002年5月 硬件/嵌入开发大版内专家分月排行榜第一2002年4月 硬件/嵌入开发大版内专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。嵌入式数据库SQLCE的开发与应用--技术天地
嵌入式数据库SQLCE的开发与应用
发布时间:&&&&被阅览数:次
& &&&&& 在当前的嵌入式工控产品中,数据库得到了越来越多的应用。通过数据库,可以非常方便地存储和检索数据,极大地提高工作效率。英创公司基于WinCE的ARM9工控主板,提供了两种类型的数据库,供客户的应用程序选择。一种是WinCE自带的数据库,主要面对需要存储的数据量较小,数据结构相对简单的应用,例如系统的动态配置文件,则使用起来非常合适。另一种则是在PC中最流行的SQL数据库,英创ARM9工控主板缺省配置的SQL数据库版本为SQL CE2.0。在表一中,列出了WinCE自带数据库与SQL CE数据库部分功能的对比,用户可以根据自己的需要,选择合适的数据库。关于WinCE自带数据库的操作请参考《EVC高级编程及其应用开发》WinCE基础数据库编程部分。本文主要讲解在eVC开发环境下,以使用ADOCE 3.1为例详细说明开发SQLCE本地数据库的方法。& &&&&& 表一:WinCE自带数据库与SQLCE数据库功能对照表WinCE自带数据库SQLCE数据库& 开发方式& 使用API函数操作& 使用SQL语句操作& 数据类型& 较少(9种)& 较多(20种)& 与pc端SQL Server数据同步& 不支持& 支持& 更改表字段& 不支持& 支持&&&&&&&& 在EVC环境下由于没有提供专门的API函数对SQLCE进行操作,需要通过ADOCE(Active Data Object for Windows CE)组件才能实现对SQLCE数据库的操作。为了方便用户使用SQLCE数据库,利用ADOCE组件技术(ADOCE介绍在附录一中),针对数据库操作中常用的功能,包括创打开数据库、建数据表等,英创提供了一个对SQLCE数据库操作的管理类DBManager,应用程序通过调用该类中提供的API函数,就可以很方便的建立与SQLCE的链接、打开数据库,并可以直接利用SQL语句来对数据库进行建立表、为表添加记录以及查询表中的记录等功能。在eVC环境下通过DBManager类访问SQLCE数据库模型如图1所示。&1、DBManager类及派生类说明&&&&&&& DBManager类主要提供打开数据库、执行SQL语句等方法。其头文件声明如下:&&&&& // 函数功能:打开数据库&&&&& // 入口参数:lpszFileName表示要打开的数据库名称,为绝对路径加文件名。&&&&& // 出口参数:无&&&&& // 返 回 值:TRUE:打开数据库成功;FALSE:打开数据库失败&&&&& bool OpenDatabase(LPCTSTR lpszDBName);&&&&&& // 函数功能:执行SQL语句&&&&& // 入口参数:lpstrSql为要执行SQL语句的字符串。&&&&& // 出口参数:无&&&&& // 返 回 值:TRUE:执行SQL语句成功;FALSE:执行SQL语句失败&&&&& bool ExecSql(LPCTSTR lpstrSql);&&&&&&&&&& 如果想灵活使用DBManager类对数据库操作,必须了解SQL语句,常用SQL语句可以参考附录二中的内容。但是,对于嵌入式工程师来说,有很多用户对SQL语句并不了解,这样,对用户使用数据库提高了门槛。在实际应用中,嵌入式主板的主要任务是把采集工业现场的状态并保存到数据库中,如果想查看分析数据,可以通过WebServer把数据库信息传输到Client端。为了方便不了解SQL语句的用户使用数据库,我们在基类DBManager中提供了几个虚函数,并给出在派生类中实现虚函数的例子。这样,使用API函数就可以实现打开数据库、创建表、插入记录等操作。用户可以根据要保存数据结构修改虚函数就可以满足用户操作数据库的要求,下面以一个实际示例说明使用派来类的方法。&&&&&&& 在工业现场,用户常常需要把现场的状态保存起来,例如,把AD采集的数据和开关量保存起来。本文中,以英创的ETA197 AD模块和ETA716 IO模块为例,说明数据库的操作。ETA197、ETA716与嵌入式主板的连接如图2所示。&&&&&&&& 根据实际情况,我们需要保存的信息有时间、IO输出值、IO输入值、8通道AD采样值,根据我们的需要,我们设计ADDIOData数据结构如下。&&&&& struct ADDIOData&&&&&& {&&&&&&&&&&& CString &// 采集信息的时间&&&&&&&&&&& UCHAR&&// IO输出值&&&&&&&&&&& UCHAR&&// IO输入值&&&&&&&&&&& float Advalue[8];&// AD采样值&&&&& };& &&&&& 根据此数据结构,我们实现了创建表和插入记录的API函数,函数声明如下:&&&&& class ADDataBase : public DBManager&&&&& {&&&&&&&&&&& public:&&&&&&&&&&&&&&&&& // 函数功能:创建表&&&&&&&&&&&&&&&&& // 入口参数:tablename表示要创建的表名。&&&&&&&&&&&&&&&&& // 出口参数:无&&&&&&&&&&&&&&&&& // 返 回 值:TRUE:创建表成功;FALSE:创建表失败&&&&&&&&&&&&&&&&& bool CreateTable(LPCTSTR tablename);&&&&&&&&&&&&&&&&& // 函数功能:删除表&&&&&&&&&&&&&&&&& // 入口参数:tablename表示要删除的表名。&&&&&&&&&&&&&&&&& // 出口参数:无&&&&&&&&&&&&&&&&& // 返 回 值:TRUE:删除表成功;FALSE:删除表失败&&&&&&&&&&&&&&&&& bool DeleteTable(LPCTSTR tablename);&&&&&&&&&&&&&&&&& // 函数功能:插入记录&&&&&&&&&&&&&&&&& // 入口参数:tablename表示表名,fieldVal为记录值结构体&&&&&&&&&&&&&&&&& // 出口参数:无&&&&&&&&&&&&&&&&& // 返 回 值:TRUE:插入记录成功;FALSE:插入记录失败&&&&&&&&&&&&&&&&& bool InsertRecord(LPCTSTR tablename,ADDIOData fieldVal);&&&&&& };2、使用DBManager类及派生类实现创建表、插入记录等操作的顺序为:& &&&&& (1)打开数据库&&& &&& (2)创建表&&&&& & (3)插入记录&&&&& ADDataBase&&&&& CString DBFile=_T('\\nandflash\\emtronix.sdf');&&&&& CString TableName=_T('ADCollection');&&&&& UserInfo&&&&& dbm.OpenDatabase(DBFile);&// 打开数据库,参数为数据库路径名&&&&& dbm.CreateTable(TableName);&&// 创建表&&&&& for(i=0;i&6;i++)&&&&&// 每秒钟采集一次数据&&&&& {&&&&&&&&&&& test.dout=0x01&&I;ISA_WriteUchar(EM9260_CS1,0x10,test.dout);&// 写716输出端口&&&&&&&&&&& ISA_ReadUchar(EM9260_CS1,0x10,&test.din);&// 读716输入端口&&&&&&&&&&& for (j=0;j&8;j++)&&&&&&&&&&& {&&&&&&&&&&&&&&&&& getADValue(j,0,&test.Advalue[j]);&&// 得到8通道AD采样值&&&&&&&&&&& }&&&&&&&&&&& dbm.InsertRecord(TableName,test);&&// 向tablename表中插入记录&&&&&&&&&&& Sleep(1000);&&&&& }&&&&&&& 由上例可以看出,使用英创公司提供的DBManager的派生类,不必了解数据库就可以方便地实现数据的存储。& &&&&& 这种操作数据库的方式不是十分灵活,对熟悉数据库的用户,可以使用DBManager类,执行SQL语句,灵活对数据库操作。关于DBManager类,可以参考源码中注释说明。附录一、ADOCE简介&&&&& & ADOCE(Active Data Object for Windows CE)技术提供了高层数据库应用软件的访问接口,可在eVC、eVB等高级语言环境中直接使用,ADOCE是一种易用的COM组件,关于COM组件的开发与调用在《ARM9工控板在远程监控中的应用》系列文章中有详细的说明。ADOCE作为开发WinCE数据库应用程度的面向对象的COM接口,其访问数据库是通过访问OLE DB数据提供程序来进行的,并且提供了一种对OLEDB数据提供程序的简单高层访问接口。ADOCE技术简化了OLE DB的操作,在OLE DB的程序中使用了大量的COM接口,而ADOCE则封装了这些接口,所以,ADOCE是一种高层的访问技术。ADOCE的数据存储模型如图1所示:&& &&&&& ADOCE支持Connection、Recordset、Field、Fields、Error对象,但不支持Command对象、Property对象以及Properties collection。下面介绍几个重要的ADOCE对象。&&& &&& 连接对象(Connection)& &&&&& Connection对象建立一个对象数据源的数据交换环境,ADOCE允许建立对ACCESS数据源和SQLCE数据源的连接。& &&&&& 记录集对象(Recordset)& &&&&& Recordset对象是ADOCE数据操作的核心,它是查询结果的集合,可以通过这个结果集处理来自数据源的数据,包括修改记录、更新记录、插入和删除记录等。可以通过Recordset的Open方法执行SQL语句,实现数据库的操作。& &&&&& 字段对象(Field)&&&&& ·字段对象的每条记录都由Fields组成,其中包括名称、数据和值。&&&&& ·基于ADOCE的WinCE数据库开发程序包括以下基本步骤:&&&&& ·创建Connection对象&&&&& ·打开数据源,建立同数据源的连接&&&&& ·创建Record对象&&&&& ·将Recordset的连接字符串设置到Connection对象中&&&&& ·使用SQL命令&&&&& ·通过Recordset对象完成结果记录集的操作&&&&& ·终止连接附录二、SQL语句语法说明&&&&& & SQL是Structure Query Language结构化查询语言的缩写,通过SQL语句的执行,可以对数据库内容(表及记录)进行修改或查询,因此数据库的操作就是执行SQL语句。下面简要介绍下几个重要的SQL语句。&&& &&& 1、Create Table语句功能是创建表,其语法格式如下:&&& &&& Create Table 表名称 (字段名称 数据类型 [(字段长度)] [,字段名称 数据类型 [(字段长度)] ,[ PRIMARY KEY | UNIQUE ] ]&&& &&&& 例如: CREATE TABLE Products (ProductID int,Name nvarchar(255), PRIMARY KEY (ProductID)& &&&&& 2、Drop Table语句的功能是将一个现存于数据库内的表删除,其所使用的语法与格式如下所示:& &&&&& Drop Table 表名称&& &&&&& 3、Select语句可以对表的记录作查询、统计。由于Select语句使用比较灵活,我们以几个具体的例子讲价Select的用法。& &&&&& Select& 字段名称 [,字段名称] From 表名称& &&&&& 其中,From关键词是设置来源表名称,使用时可以设置使用一个或多个表,而表名称间以逗号分隔。在搜寻结果中取出所需的字段内容,设置的字段名称以逗号分隔,如果要取得表上的所有字段,可直接用“*”表示。&& &&&& SELECT * FROM Products WHERE ProductID='02'&& &&&& Where关键词是设置查询记录条件,用以取得所有符合设置条件内容的记录。在条件设置中可以使用 & 、&、=等比较符号,而对于多项条件的判断也可以利用AND,OR等逻辑操作数来连接。& &&&&& 4、插入记录&& &&&& INSERT INTO& 表名[(field1[, field2[, ...]])] VALUES (value1[, value2[, ...]]&& &&&& 例如:INSERT INTO Products (ProductID,Name) VALUES (1,'EM9000嵌入式模块')&& &&&& 5、删除记录&& &&&& DELETE&& FROM 表名 WHERE criteria&&& &&& 例如:DELETE&& FROM 表名 WHERE ProdutcID=01&& &&&& 6、更新记录&&& &&& UPDATE 表名&& SET& newvalue&&&& WHERE&&& &&& 例如:Update Products set Name=’EM9161嵌入式主板’ where ProdcutID=01&&& &&& 在eVC环境下,对数据的开发,其实就是通过ADOCE COM组件执行SQL语句的过程。为了使用户方便的使用ADOCE,我们提供了DBManager类,通过此类,可以方便的建立与数据库的连接、执行sql语句等操作。
产品及服务
英创手机网站
英创官方微信
英创淘宝店
英创新浪微博SqlCeExaple WINCE下 例子,帮助你掌握 的编程和使用 Windows CE 238万源代码下载-
&文件名称: SqlCeExaple
& & & & &&]
&&所属分类:
&&开发工具: Visual C++
&&文件大小: 3082 KB
&&上传时间:
&&下载次数: 15
&&提 供 者:
&详细说明:WINCE下SQLCE例子,帮助你掌握SQLCE的编程和使用-WINCE under SQLCE example
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&SqlCeExaple&&...........\DBManager.cpp&&...........\DBManager.h&&...........\DBaseDataSql.cpp&&...........\DBaseDataSql.h&&...........\DataBase&&...........\........\student.sdf&&...........\ReadMe.txt&&...........\Resource.h&&...........\SqlCeExaple.aps&&...........\SqlCeExaple.cpp&&...........\SqlCeExaple.h&&...........\SqlCeExaple.ncb&&...........\SqlCeExaple.rc&&...........\SqlCeExaple.suo&&...........\SqlCeExaple.vcb&&...........\SqlCeExaple.vcc&&...........\SqlCeExaple.vcl&&...........\SqlCeExaple.vco&&...........\SqlCeExaple.vcp&&...........\SqlCeExaple.vcw&&...........\SqlCeExapleDlg.h&&...........\StdAfx.cpp&&...........\StdAfx.h&&...........\adoce31.h&&...........\adocec31.h&&...........\dll&&...........\...\adoce31.dll&&...........\...\adocedb30.dll&&...........\...\adocedb31.dll&&...........\...\adoceoledb31.dll&&...........\...\adoxce31.dll&&...........\...\dllregister.exe&&...........\...\isqlw20.exe&&...........\...\msdaer.dll&&...........\...\msdaerde.dll&&...........\...\msdaeren.dll&&...........\...\msdaeres.dll&&...........\...\msdaosp.dll&&...........\...\ssce20.dll&&...........\...\ssceca20.dll&&...........\...\ssceerror20en.dll&&...........\...\ssceerror20jp.dll&&...........\emulatorDbg&&...........\newres.h&&...........\res&&...........\...\SqlCeExaple.ico&&...........\...\SqlCeExaple.rc2&&...........\...\icon1.ico&&...........\voconnection.cpp&&...........\voconnection.h&&...........\vorecordset.cpp&&...........\vorecordset.h
&近期下载过的用户:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - WindowsCE系统的视频播放器源代码。可于EVC中编译。
&[] - 利用DSP控制BU61580实现1553B协议的RT功能,包含相关代码。
&[] - 51单片机,实现计算器,有详细的程序说明,中文解释
&[] - wince
串口通讯实例,一个多线程一个写线程
&[] - Wince5.0下使用VC++2005操作SQLCE3.0数据库,创建、打开数据库及数据表,代码经本人测试通过。
&[] - wince环境下数据库开发,包括多种方式:webservice、ADO、http、sqlce、XML的demo演示
&[] - Wince 中ADO3.0的使用方法
&[] - wince环境下,针对VK3224芯片测试的DEMO,能够检测串口及数据传输,16进制的转换
&[] - 内容有:模仿Outlook建立分类列表框 一个简单的数字时钟程序 可以实现在快速字符串搜索 通过单击列表来改变显示分辨率 创建一个按钮,并在上面显示图标 VC中显示JPG图片,不使用动态连接库 一个邮件报告程序 在VC中实现Undo和Redo功能 自定义的标签控件对话框
&[] - Wince 数据库编程操作,详细介绍了数据库操作!最近由于项目需要, 要在wince4.2, wince5.0, mobile三种机型上面做大数据量的查询,初步估计在50W-500W条记录之间。由于以前做mobile5的数据库项目主要是采用C#来写,而且数据量也顶多几万条,所以,为了确保项目后期少走弯路,我特意做了一下移动数据库性能测试。下面是这周的工作记录。供大家参考。一. 由于wince4.2在打包OS的时候没有带.net的支持,所以,只能选用C++,也是为了各平台移植方便。初步考虑采用sqlce 和 sqlite中的一种,sqlce是ms的东东,比较稳定。sqlite的开源的,使用方便,查询速度快。因此,两种我都做了一下测试。1. sqlce开发环境:EVC4 + sp4。 VS2005。 SqlCe 3.01). 先用VS2005写了一个小程序,生成50万条模拟数据。(在vs2005下操作sdf文件需要安装一个sqlce的包)2). 在wince上使用sqlce的话,需要把以下文件copy到windows目录(我的wince没有自带sqlce包):&&&&& sqlcese30.dll,sqlceqp30.dll,sqlceoledb30.dll,sqlceme30.dll,sqlceer30CN.dll,并注册sqlceoledb30.dll方能正常操作数据库。(或者直接安装sql的cab包也行)3). 开始编wince下的程序,操作sqlce数据库.&&&& ::CoInitializeEx(NULL,COINIT_MULTITHREADED);&&&& //注册sqlce dll&&&& LRESULT&& (CALLBACK*&& lpDllEntryPoint)();&& //声明在CPP文件的前段&&&& //注册&& HINSTANCE&& hLib&& =&& LoadLibrary(L"");&& if&& (hLib == NULL )&&&&& (FARPROC&)lpDllEntryPoint&& =&& GetProcAddress(hLib,&&&& _T("DllRegisterServer"));&&&&&& (*lpDllEntryPoint)(); //OLEDB方式操作sqlce,都是一些COM相关的东东HRESULT&&// TODO: Add your control notification handler code hereIDBInitialize&& *pIDBIIDBCreateSession&& *pIDBCreateSIDBCreateCommand&& *pIDBCreateCICommandText&& *pICommandTIDBProperties&& *pIDBPIUnknown&& *pIUDBPROP&& dbprop[1];DBPROPSET&& dbpropset[1];
hr&& =&& CoCreateInstance(CLSID_SQLSERVERCE_3_0,&& 0,&& CLSCTX_INPROC_SERVER,IID_IDBInitialize,&& (void**)&pIDBInitialize);
if&& (FAILED(hr)){return&& ;}
dbprop[0].dwPropertyID&& =&& DBPROP_INIT_DATASOURCE;dbprop[0].dwOptions&& =&& DBPROPOPTIONS_REQUIRED;dbprop[0].vValue.vt&& =&& VT_BSTR;dbprop[0].vValue.bstrVal&& =&& SysAllocString(L""); //Need&& oleaut32.lib
if&& (dbprop[0].vValue.bstrVal&& ==&& NULL){return&& ;}
dbpropset[0].guidPropertySet&& =&& DBPROPSET_DBINIT; //#define&& DBINITCONSTANTSdbpropset[0].cProperties&& =&& sizeof(dbprop)&& /&& sizeof(dbprop[0]);dbpropset[0].rgProperties&& =&&
hr&& =&& pIDBInitialize-& QueryInterface(IID_IDBProperties,(void**)&pIDBProperties);
if&& (FAILED(hr)){return&& ;}
hr&& =&& pIDBProperties-& SetProperties(sizeof(dbpropset)/sizeof(dbpropset[0]),dbpropset);
if&& (FAILED(hr)){return&& ;}
hr&& =&& pIDBInitialize-& Initialize();
if&& (FAILED(hr)){return&& ;}
hr&& =&& pIDBProperties-& QueryInterface(IID_IDBCreateSession,(void**)&pIDBCreateSession);
if&& (FAILED(hr)){return&& ;}hr&& =&& pIDBCreateSession-& CreateSession(NULL,IID_IUnknown,&pIUnknown); //Need&& uuid.libif&& (FAILED(hr)){return&& ;}hr&& =&& pIUnknown-& QueryInterface(IID_IDBCreateCommand,(void**)&pIDBCreateCommand);if&& (FAILED(hr)){return&& ;}hr&& =&& pIDBCreateCommand-& CreateCommand(NULL,IID_ICommandText,(IUnknown&& **)&pICommandText);if&& (FAILED(hr)){return&& ;}hr&& =&& pICommandText-& SetCommandText(DBGUID_SQL,L"select * from sninfo"); //执行查询if&& (FAILED(hr)){return&& ;}hr&& =&& pICommandText-& Execute(NULL,IID_NULL,NULL,NULL,NULL);if&& (FAILED(hr)){return&& ;}
记得网上有采用ADO的方式操作sqlce,但听闻ms不再更新,而采用oledb方式,只是比较麻烦一点了,这样也有助于我们了解一下sqlce的一些接口。
二. 在wince上使用sqlite数据库:1. 环境:EVC4 + sp41). 在
中下载 SQLite for Windows CE 的DLL 源代码.2). eVC里新建一个“WCE Dynamic-Link Library”工程,命名为:sqlite3). 在接下来的对话框中选择"An empty Windows CE DLL project",点击 FINISH,之后再点击 OK4). 将源码中所有的 *.c *.h *.def 复制到工程文件夹下5). 添加所有除shell.c和tclsqlite.c文件外所有文件到项目中。6). 编译生成sqlite.lib和sqlite.dll.
2. 在 下载 高人用C++封装的sqlite的类,(基于上面生成的sqlite.lib)&&& 一般来讲,我们都会是先在windows上使用sqlite的数据库,并导入基础数据。然后把数据库copy到wince里,再操作。&&&& 此类是封装的sqlite的unicode函数,能在windows下和wince下都正常使用,但有一点要注意:如果要在windows下使用,因为VC6默认是建的_MBCS项目,而如果要调用unicode的函数,生成utf16数据以供在wince下能正常显示中文,则需要把项目的编译参数从_MBCS改为:UNICODE _UNICODE。
3. 这下我们就可以在evc4里面操作sqlite数据库了://打开数据库
CppSQLite3DB//打开或新建一个数据库db.open(L"");
//新建表&& db.execDML(L"create table sninfo(id nchar(12), area nvarchar(6), info nvarchar(60),source nchar(6), target nchar(6))");&& //查询CppSQLite3Query q = db.execQuery(L"select * from sninfo where area='广州区'");CString strTwhile (!q.eof())&&&&&&& {&& strTemp.Format(_T("%s-%s-%s-%s"),q.fieldValue(0),q.fieldValue(3),q.fieldValue(4),q.fieldValue(1));&& m_list.AddString(strTemp); //显示到listbox控件中&& q.nextRow();}q.finalize();
db.close();4.对sqlite的数据库操作就介绍到这里,我目前也就用了这么多,更多的我也需要学习,在 wince或mobile下用sqlite要注意一点的是,数据库的路径中不要含有中文字,否则会打开失败,如果非要用中文,那必须得转成utf-8才行,sqlite内部是通过utf-8来读取的。
三. 后记对比了一下sqlce和sqlite在查询50W记录时的性能,都可以在2秒钟之内完成,(一开始我没建index,查了4分多钟,晕),一定记得要建索引哦。否则查询N慢。
本文来自CSDN博客,转载请标明出处:
本文来自CSDN博客,转载请标明出处:
| 浏览(225) | &(0)
最近读者:
后,您就出现在这里。
阅读(...) 评论()

我要回帖

更多关于 还原sql2005数据库 的文章

 

随机推荐