本文介紹如何利用 RDA(RemoteDataAccess遠程數據存取)實現掌上電腦Pocket PC(簡稱PPC)上的SQL Server CE 2.0與桌面SQL Server 2000數據庫間的數據存取。我們將采用Visual Basic .Net 2003進行智能設備端的程序開發。
一、 概述
PPC程序與桌面PC進行通信的編程方式目前有兩種,1、利用Socket編程與桌面程序進行通信;2、利用RDA和Replication(復制)進行數據庫編程來完成與桌面SQL Server數據庫的存取。利用Socket編程實際上就是通過TCP/IP協議與桌面PC進行通信,它可以很方便的傳輸一般類型的數據,譬如:字符串、整數以及字節等,但是如果需要傳輸類型化的數據則需要程序員自己去封裝,而且若想由智能設備從桌面數據庫引擎中返回指定數據庫表的數據,必須編寫桌面接口服務程序來查詢數據並將結果通過Socket返回給智能設備。那麼如何才能在Pocket PC上做到像在桌面PC上一樣存取本地數據庫甚至是遠程桌面PC的數據庫呢?通過在智能設備Pocket PC上運行的SQL Server CE 我們便可以輕松存取放置在Pocket PC上的SQL Server CE數據庫,還可以通過SQL Server CE中的RDA或者合並復制快速實現從智能設備上存取遠程桌面SQL Server2000的數據庫。
二、技術要點
SQL Server CE 全名是Microsoft SQL Server 2000 Windows CE Edition,它為移動智能設備和嵌入式設備提供了一種存取輕量級數據庫的解決方案。通過使用Microsoft Visual Studio .NET 或者 Microsoft eMbedded Visual Tools等開發工具,我們可以將SQL Server的企業數據管理能力擴展到基於Windows CE的智能平台之上。SQL Server CE可以應用到三種典型的環境中:
1、開發環境,即用於開發基於SQL Server CE程序的桌面PC,該桌面PC必須包括Microsoft Visual Studio .NET或者Microsoft eMbedded Visual Tools 3.0和Pocket PC SDK開發工具;
2、客戶端環境,是用於運行基於SQL Server CE程序的Pocket PC設備,當設備沒有可用的網絡連接時,可以使用Microsoft ActiveSync來與服務器環境桌面PC進行線纜連接;
3、服務器環境,是運行Microsoft Internet Information 服務(IIS) 和Microsoft SQL Server實例的計算機,可以將IIS和SQL Server部署在同一台已算機上,也可以分別配置到多台計算上。RDA和合並復制都需要通過IIS來與SQL Server進行通信。
SQL Server CE 依靠幾個組件來與SQL Server進行數據交換:
1、數據庫引擎用於管理基於Windows CE設備上的數據存儲,並且跟蹤數據庫記錄的添加、更新和刪除操作;
2、SQL Server CE Client Agent 是運行在Windows CE設備上的用於連接的組件,包括復制對象、RDA對象和數據庫引擎,使用這些對象應用程序可以控制與SQL Server的連接;
3、SQL Server CE Server Agent 處理來自SQL Server CE Client Agent的Http請求。當SQL Server CE Client Agent通過Http協議向SQL Server CE Server Agent發送請求時,SQL Server CE Server Agent會與SQL Server進行連接並將查詢的記錄集通過Http協議再傳回給SQL Server CE Client Agent,所有數據的傳送都要依賴IIS來完成。
由上述通信過程我們知道,SQL Server CE 的遠程連接和存取需要使用Web傳輸協議Http 或者Https,SQL Server CE Client Agent必須運行在Windows CE設備上,SQL Server CE Server Agent則運行在桌面PC上,而且該計算機還必須安裝有IIS以便使用RDA 或合並復制來和SQL Server通信。SQL Server CE 支持的網絡連接有以太網、無線局域網和無線廣域網。通過使用Microsoft ActiveSync,Pocket PC設備可以使用串口、紅外線或者USB直接與桌面PC上的SQL Server連接,也可以進行SQL Server CE與桌面SQL Server 的連接測試。
Remote Data Access (RDA)對象是Microsoft SQL Server 2000 Windows CE (SQL Server CE)用於可編程存取遠程Microsoft SQL Server 2000 或者Microsoft SQL Server version 7.0 數據庫的ActiveX控件,我們可以使用RDA存取遠程數據庫就像是在桌面PC上操作本地數據庫一樣簡單。