WEB开发网
开发学院WEB开发综合 开发ADOCE搭配WinCE资料存取应用程序(2) 阅读

开发ADOCE搭配WinCE资料存取应用程序(2)

 2006-02-27 11:46:20 来源:WEB开发网   
核心提示:使用ADOCE使用ADOCE,您可以将资料库移至您WindowsCE基础的装置或是从您WindowsCE基础的装置移出,开发ADOCE搭配WinCE资料存取应用程序(2),您也可以在桌上型电脑装置上与一个模拟器上建立或存取资料库,以下的章节将描述如何使用ADOCE及其案例,请拜访MicrosoftWindowsCEWe
使用ADOCE
使用ADOCE,您可以将资料库移至您WindowsCE基础的装置或是从您WindowsCE基础的装置移出。您也可以在桌上型电脑装置上与一个模拟器上建立或存取资料库。以下的章节将描述如何使用ADOCE及其案例。注意ControlConsts.bas安装在\PRogramFiles\MicrosoftVisualStudio\VB98\VBCE\Samples目录内。此当案包含有在ADOCE与其他控制列举的定义。

需要的软体
如要使用ADOCE控制,您需要以下的软体:

MicrosoftWindowsCEServices版本2.1或更早的版本

MicrosoftWindowsNTWorkstation版本4.0或是Windows95或98

您使用装置的MicrosoftWindowsCEPlatformSDK

MicrosoftVisualBasic专业版6.0开发系统或是MicrosoftVisualBasic企业版6.0

MicrosoftWindowsCEToolkitforVisualBasic版本6.0

注意:ADOCE控制包含在WindowsCEToolkitforVisualBasic之内。

在桌上型电脑与装置之间移动资料库
您可以在一个桌上型电脑与一个WindowsCE基础的装置之间来回移动资料库表格。储存在桌上型电脑的资料库是Microsoftaccessdatabase格式。储存在装置的资料库被存为标准WindowsCE基础表格与加至ADOCE系统表格的额外资讯

从桌上型电脑拷贝一个资料库至装置

连接装置与桌上型电脑并开启MobileDevices视窗。

在MobileDevices视窗从工具功能表选择汇入资料库表格。会显示出开启对话方块。

选取包含有您要汇入的表格的Access.mdb档案。从资料库至MobileDevice汇入对话方块与资料库的表格与栏位清单会显示出来。

选取您要汇入的表格与栏位的核取方块,并且清除您不要汇入的表格与栏位的核取方块。

对您希望要唯读的表格,选取唯读核取方块。

如果您要取代装置内与.mdb档案名称相同的表格,选取覆盖现存的表格与/或资料核取方块。

选择确定开始转换。

从桌上型电脑拷贝一个资料库至装置

连接装置与桌上型电脑并开启MobileDevices视窗。

在MobileDevices视窗,从工具功能表选择汇出资料库表格。从MobileDevice至资料库汇出对话方块会显示出来,在连接的装置上显示ADOCE表格。

选择浏览按钮以选取一个Access.mdb档案。您也可以在位置方块输入路径与档案名称。如果档案不存在,ADOCE会为您建立。

选取您要汇出表格的核取方块,然後清除您不要汇出表格的核取方块。ADOCE会将所有选取的表格放入.mdb档案。

如果您要取代在.mdb档案内的表格,此表格与所选取的ADOCE表格名称相同,选取覆盖现存的表格与/或资料核取方块。

选择确定开始转换。

对於计划控制将.mdb档案转换至ADOCE表格及将ADOCE表格转换至.mdb档案,您可以各别使用DesktopToDevice与DeviceToDesktop函数。这些函数行为类似於从资料库至MobileDevice汇入与从MobileDevice至资料库汇出对话方块,但使用者选择对话方块不会显示出来。所有进度列会显示出来,表示转送的状态。一个传回错误不会自动引起登录档案显示。取而代之的是,函数会传回一个错误值HRESULT,呼叫的应用程式可以采取适当的动作。

使用DesktopToDevice函数,您可以指定转换哪一个栏位。然而,使用DeviceToDesktop函数,预设为转换表格中所有的栏位。

下列程式码案例显示一个简单的VisualBasic应用程式,其以不同步方式将一个被包括在VisualBasic的Northwind资料库的子集拷贝至装置,但是覆盖任何现存的Northwind表格。Employees表格以唯读表格传送,然而Products表格可以被更新。

DeclareFunctionDesktopToDeviceLib"c:\programfiles\windowsceservices\adofiltr.dll"_
(ByValdesktoplocnAsString,_
   ByValtablelistAsString,_
   ByValsyncAsBoolean,_
   ByValoverwriteAsInteger,_
ByValdevicelocnAsString)AsLong

result=DesktopToDevice("c:\mydbs\nwind.mdb",_
"!Employees..Products.ID.Name.Quantity..",False,True,"")
Ifresult<>0ThenMsgBox"Anerroroccurredtransferringthedata"

建立一个表格
在您可以使用ADOCE控制存取资料之前,您必须要有一个用以储存资料的表格。下列的程式码案例显示如何在一个H/PC(手提式个人电脑)执行专业软体的资料库目录内建立一个新的ADOCE表格。

Dimrs
Setrs=CreateObject("adoce.recordset")
rs.Open"createtablemytable(firstfieldtext,secondfieldinteger)"
Setrs=Nothing

因为SQL陈述式变更一个表格的结构使得记录组被关闭,您不能读取或是写入资料直到记录组重新被开启。

排序一个表格
您可以排序一个资料库,使用OrderBy陈述式,用索引或不用索引都可以。然而,不用索引排序的资料库一般较用索引排序的资料库速度为慢。下列的程式码案例显示如何不用索引排序一个资料库。它需要一个名为List1的清单方块。

Dimrs
Setrs=CreateObject("ADOCE.RecordSet")
rs.open"select*frommytableorderbyfirstfielddesc","",adOpenKeyset,adLockOptimistic
Ifrs.RecordCount>0Then
 DoWhileNotrs.EOF
  List1.Additemrs.Fields("firstfield").Value
  rs.MoveNext
  Loop
EndIf
rs.Close
setrs=Nothing

下列程式码案例显示如何在一个资料库建立一个索引,用以增加排序的速度。它需要一个名为List1的清单方块。

Dimrs
Setrs=CreateObject("ADOCE.RecordSet")
rs.open"createindexi1onmytable(firstfielddesc)"
rs.open"select*frommytableorderbyfirstfielddesc","",adOpenKeyset,adLockOptimistic
Ifrs.RecordCount>0Then
 DoWhileNotrs.EOF
  List1.Additemrs.Fields("firstfield").Value
  rs.MoveNext
  Loop
EndIf
rs.Close
setrs=Nothing

储存与取出资讯
如要在资料库中新增、移除或变更资讯,当在开启记录组时,您必须变更预设的CursorType与LockType。下列程式码案例显示如何在资料库中储存资讯:

Dimrs
Setrs=CreateObject("ADOCE.RecordSet")
rs.open"mytable","",adOpenKeyset,adLockOptimistic
rs.Addnew
rs.fields("firstfield")="ActiveXDataObjects"
rs.fields("secondfield")=1.8
rs.Update
rs.Close
Setrs=Nothing

如果您使用AddNew方法与其参数,您不需要使用Update方法,因为资料库会自动变更。以下程式码案例显示如何使用AddNew:

rs.Addnew"firstfield","WindowsCE"

如要变更一个记录,对栏位做一个需要的变更然後使用Update方法。如果您使用Update及其参数,资料库会自动变更。以下的程式码案例显示如何使用Update:

rs.Update"firstfield","ADOCE"

在您使用AddNew与Update储存资料库资料之後,您可以使用Value属性来取得储存在一个栏位的资讯。以下的程式码案例显示如何从一个ADOCE资料库取出资讯。它需要一个名为List1的清单方块。

Dimrs
Setrs=CreateObject("ADOCE.RecordSet")
rs.open"mytable","",adOpenKeyset,adLockOptimistic 
Ifrs.RecordCount>0Then
 DoWhileNotrs.EOF
  List1.Additemrs.Fields("firstfield").Value
  rs.MoveNext
  Loop
EndIf
rs.Close
setrs=Nothing

分送ADOCE应用程式
ADOCE应用程式元件必须分别安装在桌上型电脑与装置两处。分送一个ADOCE应用程式的一个方式是修改范例安装应用程式,其包含在MicrosoftWindowsCEToolkitforVisualBasic6.0中。所有的ADOCE安装应用程式会验证WindowsCEServices2.1或更早的版本是否已安装并且对您的应用程式新增参照至ADOCE.cab档案至AppMgr.ini档案。

使用一个H/PC(手提式个人电脑)执行专业版软体

本节描述额外的程序,可以在一个手提式个人电脑执行MicrosoftWindowsCE手提式个人电脑专业版本3.0。

建立一个资料库
下列程式码案例显示如何在一个H/PC(手提式个人电脑)执行专业版软体建立一个外部的资料库:

Dimrs
Setrs=CreateObject("adoce.recordset")
rs.Open"createdatabase'\mydatabase.cdb'"
Setrs=Nothing

从一个.cdb档案取出资讯
如果您在一个执行专业版软体的H/PC(手提式个人电脑)建立一个资料库,您可以用连接参数传送路径至资料库以存取此资料。所有的作业可以用一个执行在.cdb档案的空字串("")藉由变更连接字串来执行。以下的程式码显示如何从一个.cdb档案取出资讯:

Dimrs
Setrs=CreateObject("ADOCE.RecordSet")
rs.open"mytable","\mydatabase.cdb",adOpenKeyset,adLockOptimistic
Ifrs.RecordCount>0Then
 DoWhileNotrs.EOF
  List1.AddItemrs.Fields("firstfield").Value
  rs.MoveNext
  Loop
EndIf
rs.Close
setrs=Nothing

摘要
ADOCE是一个应用程式阶层的资料存取物件模组,可以使用在WindowsCEToolkitsforVisualBasic。ADOCE新增了新的资料库功能至WindowsCE可以存取储存在本机装置的资料库并提供对一个网路资料库的资料复制与资料同步。ADOCE的速度与容易使用,加上使用少量额外记忆体以及占用磁碟空间很小,使得其与精简、强而有力并快速的WindowsCE作业系统搭配非常理想。

更多的资讯
有关WindowsCE与内嵌发展工具最新的资讯,请拜访MicrosoftWindowsCEWeb网站http://www.microsoft.com/windowsce/default.asp

有关ActiveX控制的资料,请拜访http://www.microsoft.com/com/tech/activex.asp。->

Tags:开发 ADOCE 搭配

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接