首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

ADOCE 與 ADO.NET 差異比較:從桌面移植到 Pocket PC 的資料存取指南

     編輯:關於.NET

前置需求

  • Microsoft eMbedded Visual Tools
  • SQL Server 2000 Developer Edition
  • SQL Server 2000 Windows CE Edition
  • ADOCE 3.1 (隨 SQL Server CE 安裝)
  • Visual Studio + ADO 2.6 (測試伺服器端範例)

關鍵差異:ADOCE 不支援的 ADO 功能

  • Command 與 Parameter 物件
  • 集合物件
  • Property 物件
  • Recordset 持久化 (Recordset.Save)
  • 非同步查詢
  • 離線 Recordset
  • 動態建立 Recordset
  • 多重查詢 (Recordset.NextRecordset)
影響: 無 Recordset.Save 意味著無法將結果集序列化為 XML 供其他程式呼叫,需額外轉換層(建議 Odyssey Software Cefusion/ViaXML 或 pocketSOAP)。

連接字串差異

平台連接字串範例
PC (ADO)Provider=SQLOLEDB;Data Source=SERVERNAME;Initial Catalog=DBNAME;Trusted_Connection=Yes
Pocket PC (ADOCE)Provider=Microsoft.SQLSERVER.OLEDB.CE.1.0;Data Source=\DBNAME.sdf
  • ADOCE 若省略 Provider 會預設存取 Pocket Access 檔案。
  • SQL Server CE 資料庫永以檔案形式參考(.sdf),可置於裝置根目錄或應用程式目錄(\Program Files\AppName\AppName.sdf)。

讀取資料程式碼比較

核心邏輯幾乎相同,僅連接字串與物件建立不同:

' PC: CreateObject("ADODB.Connection") / CreateObject("ADODB.Recordset")
' PPC: CreateObject("ADOCE.Connection.3.1") / CreateObject("ADOCE.Recordset.3.1")

更新/刪除資料關鍵差異

PC (ADO):以 SQL 陳述式開啟可更新 Recordset

lsSQL = "SELECT * FROM Article"
lars.Open lsSQL, laco, adOpenDynamic, adLockOptimistic

Pocket PC (ADOCE):必須以資料表直接開啟(adCmdTableDirect),再用 Find 定位:

lsTable = "Article"
lars.Open lsTable, laco, adOpenDynamic, adLockOptimistic, adCmdTableDirect
lars.Find "Description='Test'"

或直接執行 SQL 陳述式(效能更佳):

laco.Execute "UPDATE Article SET Price=200 WHERE Description='Test'"
laco.Execute "DELETE Article WHERE Description='Test'"

結論

  1. 大多數資料存取代碼幾乎無需修改即可移植。
  2. 主要調整點:連接字串、Recordset 開啟方式(TableDirect + Find)、避免不支援功能。
  3. 將 PC 企業應用移植至 Pocket PC 工作量可控,建議立即著手。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved