熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

移動數據

2013-11-11 21:33:03  來源: Windows系統管理 

  本月Two for the Road 專欄將我帶到了陽光明媚的加利福尼亞南部海灘在這裡我試圖在沖浪和 Pocket PC 開發之間保持平衡做到勞逸結合開始本打算在這兩者之間保持完全的平衡但是我很快驚異地發現 iPaq 在沖浪板上根本無法使用因此我只能進行單調的沖浪運動了誰曾想會是這樣呢?您或許會想Compaq 可能已在用戶手冊中對此問題提出了某種警告
  
  對於此問題你們不必多慮如果我能編寫一個移動應用程序就好了這樣就可以打消那些開發同仁們的疑慮Roof 這家伙將 iPaq 帶到沖浪板上去到底想干什麼?好吧我承認我需要幫助一身古銅色的皮膚和一方滴著鹽水的引人注目的鎮紙石這就是我此次旅行的唯一收獲
  
  好了有關我遇到的技術問題這一話題就到此為止吧現在讓我們開始討論移動數據的問題與我上個月教您構建的移動字幕應用程序有所不同那個程序的實用性和簡單程度簡直令人難以置信您將要構建的大多數 Pocket PC 應用程序最終或多或少都要涉及到數據問題
  
  移動數據選項
  開發移動應用程序的關鍵在於如何處理選項及其相關的權衡問題這同樣適用於將數據集成到移動應用程序這一主題對於數據存儲您可以有以下選項
  
  順序存取隨機存取和二進制文件這些久經驗證的方法使得將數據合並到應用程序變得非常簡單其優點在於根據您的需要它們可以變得非常簡單也可以相當復雜如果使用得當它們能夠提供最好的性能不足之處在於它們往往成為專用的解決方案不易合並到企業環境
  Pocket Access 數據庫不要被 Pocket Access 這個名字所誤導這種移動數據方案與功能強大的桌面產品 Microsoft Access 差別很大Pocket Access 缺乏窗體報表存儲查詢以及表之間的關系簡而言之它只提供對一組表的存儲和訪問另外它還與 Microsoft Access 兼容支持數據同步提供一些簡單的工具用於將表在設備間移動而且可以使用 ADOCE(即 ActiveX® 數據對象的移動版本)對它進行操作(這一點以後再討論)
  注意 Pocket Access 表的擴展名為 cdf
  SQL Server Windows CE 版目前功能最全面性能最穩定的移動數據庫非 SQL Server CE 莫屬它提供的關系數據庫所占空間很小但包含了一個查詢處理器和一些合並復制功能和 Pocket Access 一樣您可以使用 ADOCE 對 SQL Server CE 數據庫進行操作事實上要將移動應用程序從用於 Pocket Access 轉變為用於 SQL Server CE通常需要對代碼進行小小的改動
  注意 SQL Server CE 數據庫的擴展名為 sdf
  SQL Server CE 最適合於那些專門用來與基於企業的 SQL Server 數據庫交互的應用程序不過盡管其性能卓越它卻不能和 Pocket Access 一樣支持簡單的 ActiveSync® 和 ADOCE API
  
  什麼是 ADOCE?
  使用 ADOCE就可以從移動應用程序訪問 Pocket Access 和 SQL Server CE 數據庫ADOCE 提供 ADO 功能的子集它包含自己的內部數據庫提供程序通過該程序您可以對存儲在 Pocket PC 本地的數據庫進行操作使用 ADOCE還可以通過 OLEDB 提供程序來訪問數據源
  
  ADOCE 的主要優點在於您可以使用自己的桌面 ADO 編碼技術來開發移動應用程序有關 ADOCE 支持哪些功能的詳細信息請查閱 eMbedded Visual Basic® (eVB) 中附帶的幫助
  
  本月的應用程序Mobile Sales
  我在撰寫本文時意識到上個月的應用程序 Hello World 字幕具有明顯的適銷性以後的應用程序要想達到這一境界恐怕很難於是我決定在本月的應用程序 Mobile Sales 中加點新鮮內容盡管它可能不如 Hello World 字幕那樣有吸引力卻說明了如何利用 ADOCE 將存儲在 Pocket Access 數據庫中的數據合並到移動解決方案
  
  Mobile Sales 展示了使用 Pocket PC 很容易就能使交貨過程自動化使用 Mobile Sales交貨人員能夠快速填寫每一地點訂購的訂單這樣當他們進貨時只需要選擇要添加到訂單的每個項目的類型和數量該數據存儲在 Pocket PC 上的表中可以從它下次連接的設備處檢索該表
  
  Mobile Sales 由以下兩個組件組成
  
  桌面交貨應用程序
  移動條目應用程序
  我將帶您一步步浏覽這兩個應用程序以便在浏覽之後您對分發使用和收集移動應用程序生成的數據這整個過程能有一個全面的了解
  
  Mobile Sales 數據庫
  用於 Mobile Sales 的 Microsoft Access 數據庫包含四個表
  
  CustomersCustomers 表專門用於填充設備應用程序中的組合框該表在設備上是只讀的
  ProductsProducts 表用於填充設備應用程序中的組合框也是每個產品的定價信息源該表在設備上是只讀的
  RouteRoute 表包含司機每天預定要訪問的客戶列表根據這種情況每天要用一組新客戶來生成該表該表在設備上是只讀的
  OrdersOrders 表用於存儲在字段中輸入的訂單信息它在設計上非常簡單表中的每個記錄代表客戶訂購的一個項目
  Mobile Sales 桌面組件
  
  Mobile Sales 桌面組件負責將數據庫傳輸到設備然後從設備檢索回單個 Orders 表其界面非常簡單如下圖所示
   
  圖 Mobile Sales 桌面界面
  
  Mobile Sales – 桌面使用 ADOCE API 來執行這些傳輸ADOCE 提供了程序方法用於將表傳輸到設備或從設備傳輸表ADOCE API 簡單得令人難以置信它只包含兩個函數DESKTOPTODEVICE 和 DEVICETODESKTOP
  
  DESKTOPTODEVICE 用於將表從 Microsoft Access 桌面數據庫復制到 Pocket Access 設備數據庫該函數的語法為
  
  DESKTOPTODEVICE(DesktopLocn TableList Sync Overwrite DeviceLocn)
  
  其中
  
  DesktopLocn 是包含要傳輸的表的 Access 數據庫的路徑和文件名您還可以將 DSN 用作該值
  TableList 是要復制的表和字段的列表
  該參數的格式為
  
  [!]表名字段名
  
  前導 ! 用於指定表是只讀的
  
  Sync 定義 ActiveSync 是否應維護桌面和設備數據庫之間的同步
  Overwrite 指定是否應覆蓋任何現有的表
  DeviceLocn 是指設備上的 Pocket Access 數據庫的路徑和文件名
  
  DEVICETODESKTOP該函數用於將表從 Pocket Access 設備數據庫復制到 Microsoft Access 桌面數據庫該函數的語法為
  
  DEVICETODESKTOP(DesktopLocn TableList Sync Overwrite DeviceLocn)
  
  DEVICETODESKTOP 函數的參數與 DESKTOPTODEVICE 函數中所用參數完全相同
  
  下載 Mobile Sales 數據
  使用 DESKTOPTODEVICE 函數之前必須在Mobile Sales – 桌面窗體模塊的一般聲明部分聲明此函數如下所示
  
  Private Declare Function DESKTOPTODEVICE Lib _
   c:\Program Files\Microsoft ActiveSync\adofiltrdll _
   (ByVal desktoplocn As String _
   ByVal tablelist As String _
   ByVal sync As Boolean _
   ByVal overwrite As Integer _
   ByVal devicelocn As String) As Long
  
  然後使用以下代碼將這四個表從桌面 Microsoft Access 數據庫復制到設備 Pocket Access 數據庫
  
  lResult = DESKTOPTODEVICE(AppPath & \Mobile Salesmdb _
  !Customers!Products!RouteOrders False True _
  \tonked\Mobile Sales\Mobile Salescdb)
  
  注意 該代碼位於示例的 mnuFunctionsDownload 單擊事件中
  在此處正在將 CustomersProductsRoute 和 Orders 表復制到設備其中 CustomersProducts 和 Route 這三個表是只讀的其名稱前標有! 在這一過程中將覆蓋任何現有的表
  
  上載訂單數據
  使用 DEVICETODESKTOP 函數之前也必須在Mobile Sales – 桌面窗體模塊的一般聲明部分聲明此函數
  
  Private Declare Function DEVICETODESKTOP Lib _
   c:\program files\Microsoft ActiveSync\adofiltrdll _
   (ByVal desktoplocn As String _
   ByVal tablelist As String _
   ByVal sync As Boolean _
   ByVal overwrite As Integer _
   ByVal devicelocn As String) As Long
  
  然後使用以下代碼將 Orders 表從設備 Pocket Access 數據庫復制到桌面 Microsoft Access 數據庫
  
  lResult = DEVICETODESKTOP(AppPath & \Mobile Salesmdb _
  Orders False True \tonked\Mobile Sales\Mobile Salescdb)
  
  注意 該代碼位於示例的 mnuFunctionsUpload 單擊事件中
  桌面組件概述
  該組件展示了將數據移到設備或從設備移回數據實現起來很簡單利用 ADOCE API您可以輕松地傳輸 Microsoft Access 表
  
  注意 您可以使用示例附帶的 Microsoft Access 數據庫中的 Todays Orders 報表來生成訂單報表如下圖所示
   
  圖 訂單報表
  
  運行報表之前您應該執行以下步驟
  
  使用Mobile Sales – 桌面組件將數據庫下載到您的設備
  運行Mobile Sales – 設備組件處理一些客戶訂單
  使用
From:http://tw.wingwit.com/Article/os/xtgl/201311/8681.html
  • 上一篇文章:

  • 下一篇文章:
  • Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.