SQL Server CE 開發(fā)前準備

2010-08-28 10:49:44來源:西部e網(wǎng)作者:

SQL Server CE 2.0的全名是SQL Server 2000 Windows CE Edition version 2.0。2002年秋天就有了,那時候也正好是.NET Compact Framework剛剛出來的時候。那時候就想研究研究,但因為實際需求太少、沒有人問問題、沒人有做項目,所以就一直扔著。

不過隨著Pocket PC/Windows Mobile越來越被人熟悉,一些實際需求也就帶動出來了。典型的需求是Field Service。現(xiàn)在很多Field Service仍然是依賴紙張,做不到全部電子化。

例子1:公司派人去倉庫驗貨、點貨,可以把清單同步到Pocket PC上,然后在倉庫里面直接在PPC上面update,回到公司一同步就可以了。否則按照原先做法,需要先打印一張清單,回來以后再錄入一遍。

例子2:聯(lián)想派人上門來修電腦,以前總是帶著一張打印出來的派工單,維修晚了以后維修的人填寫維修記錄,然后讓客戶簽字。這樣做,一則是紙質(zhì)派工單的檔案管理很麻煩,二則維修記錄等停留在紙上,如果想用作知識管理、Business Intelligence等更多分析用途,還需要再找人輸入。如果能把派工單同步到Pocket PC里面,在現(xiàn)場直接填寫記錄以及讓客戶簽字,回來一下子同步到服務(wù)器上,就方便多了。

所以,前兩天下定決心把SQL CE摸了一下,寫了一些心得。如果沒有摸過SQL CE但也想了解一下,看我這些心得應(yīng)該可以解決大部分常見的對于SQL CE的問題。

1. SQL CE的架構(gòu)

首先要回答的問題是“SQL CE是什么”。簡單的說,SQL CE就是運行在Pocket PC以及其他Windows CE平臺上的一個很簡化的SQL Server 2000/7.0。之所以說是“簡化”的,因為它支持的功能少、數(shù)據(jù)類型比較少、周邊工具也少。除了運行在Device上的部分以外,SQL CE還帶了一套開發(fā)包(就是Sqlce Data Provider),以及SQL CE Server Tool用來連接服務(wù)器上的SQL Server 2000/7.0:

\

開發(fā)時,可以用VS.NET或者eVB/eVC來開發(fā)。如果用eVB/eVC開發(fā),就用ADOCE 3.1;如果用.NET開發(fā),就用.NET Compact Framework以及SQL Server CE Data Provider,用法基本上和原先的ADO.NET沒啥太大的區(qū)別:

\

運行時,SQL CE的感覺就好像是SQL Server 2000/7.0的一個副本,SQL CE應(yīng)用程序本身在Pocket PC上會占用1-3MB空間,另外數(shù)據(jù)回存放在后綴名為.sdf的文件中(和SQL2K中的mdf文件同樣的角色)。用戶在Pocket PC上做的操作都先發(fā)生在SQL CE上,然后再時不時地和SQL Server 2000/7.0同步(Replication)。當然,也可以用RDA(Remote Data Access)的方式,直接讓數(shù)據(jù)操作發(fā)生在SQL Server 2000/7.0上。

這里一個有意思的地方是無論用Replication還是RDA,移動設(shè)備訪問SQL Server 2000/7.0時必須通過IIS進行,不知道這個設(shè)計是否考慮了Web Server會放在DMZ里面而SQL會放在Internal的原因:

\

2. SQL CE的安裝

 

如果我沒有記錯的話,SQL Server CE 2.0是免費的,只要有SQL2K Standard/Enterprise的License,就可以下載安裝使用。不過如果做商業(yè)開發(fā),最好再核實一下。

有興趣的可以在http://www.microsoft.com/sql/ce/downloads/ce20.asp下載SQL Server CE 2.0的安裝文件,大概40多兆。下載好以后,安裝之前還要準備一下這些:VS.NET 2003,SQL Server 2000 SP1 or Higher,IIS。安裝的步驟是:

a) 在開發(fā)環(huán)境上安裝SQL CE。

主要是安裝Sqlce Data Provider的Assembly,以及后面兩步安裝需要的安裝文件。安裝的方法是直接運行下載下來的Setup.exe,一路Next就可以了。需要有VS.NET 2003。安裝好以后效果是這樣的:

\

\

b) 在IIS上安裝SQL CE Server Tool,并配置連接SQL Server 2000數(shù)據(jù)庫。

如果SQL Server 2000是SP1或者SP2,這一步可以用C:\Program Files\Microsoft SQL Server CE 2.0\Redist\Server下的文件安裝。如果裝了SP3,可以到http://www.microsoft.com/sql/ce/downloads/sp3.asp下載安裝文件。

安裝好了以后要配置IIS和SQL Server 2000之間的連接。配置成這樣就可以了:

\

這一步,如果SQL Server上面沒有創(chuàng)建過Publisher,還需要馬上創(chuàng)建一個。Snapshot folder等目錄的權(quán)限最好放寬些,免得將來出錯。

c) 最后,在Pocket PC上安裝。

其實,這步不需要自己來做。VS.NET 2003在Deploy項目的時候自動會安裝的。當然,如果需要手工安裝,可以用C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\下的文件安裝,其中包括了數(shù)據(jù)庫引擎、Query Analyzer等。我的Pocket PC是iPAQ 1940,系統(tǒng)是中文的PPC 2003,我用的安裝文件是那個目錄下的wce400\armv4\子目錄。其他平臺不太清楚。

這些都做完了,SQL CE的安裝也就OK了。

3. 移動IBuySpy的實例

 

SQL CE 2.0自帶了一些很好的實例,例如IBuySpy Delivery Application。IBuySpy是一個.NET的電子商務(wù)網(wǎng)站的demo solution,而這個IBuySpy Delivery Application是在此之上做的一個供銷售人員用的移動辦公工具。銷售可以拿著Pocket PC到處接訂單,然后回到公司以后同步到IBuySpy的數(shù)據(jù)庫中。很典型的Field Service。

IBuySpy的安裝路徑是C:\Program Files\Microsoft Visual Studio .NET 2003\CompactFrameworkSDK\v1.0.5000\Windows CE\Samples\VB\Pocket PC\IBuySpyDelivery。不難裝,一路Next就可以了,有Wizard,安裝程序會把服務(wù)器上的數(shù)據(jù)庫也Setup好,還會把Client發(fā)布到Pocket PC上(發(fā)布Client需要VS.NET 2003)。

下面是一些Pocket PC上的Screenshot,沒摸過的兄弟看了就有感性認識了:

a) SQL CE在Device上存在形式是一個.sdf文件

\

b) SQL CE也有Query Analyzer

\

c) 和SQL Server 2000同步

\

d) IBuySpy例子提供的一個簽名控件真不錯,會轉(zhuǎn)換成Bit Array存儲在數(shù)據(jù)庫中

\

上面這些心得,也可以在http://eric.tanqi.com/SQLCE/SQLServerCE.zip下載到,這是一個PPT文件。

很快SQL Server Mobile Edition也要出來了,跟著VS.NET 2005和Yukon一起,應(yīng)該算是SQL CE 2.0的下一個版本。粗粗看了一眼,好像提供了Synchronization的進度API,這樣就可以顯示一個同步的進度條了。

關(guān)鍵詞:SQLServer

贊助商鏈接: