程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 開發ADOCE搭配WinCE資料存取應用程序(2)

開發ADOCE搭配WinCE資料存取應用程序(2)

編輯:VB綜合教程
使用ADOCE
  使用ADOCE,您可以將資料庫移至您WindowsCE基礎的裝置或是從您WindowsCE基礎的裝置移出。您也可以在桌上型電腦裝置上與一個模擬器上建立或存取資料庫。以下的章節將描述如何使用ADOCE及其案例。注意ControlConsts.bas安裝在ProgramFilesMicrosoftVisualStudioVB98VBCESamples目錄內。此當案包含有在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:programfileswindowsceservicesadofiltr.dll"_
  (ByValdesktoplocnAsString,_
   ByValtablelistAsString,_
   ByValsyncAsBoolean,_
   ByValoverwriteAsInteger,_
  ByValdevicelocnAsString)AsLong
  
  result=DesktopToDevice("c:mydbs wind.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。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved