什麼是Sql Server Compact Edition(Sqlce)?其實Sqlce已經出現有一段時間了,在之前是Sql Server 2005 Mobile edition,後來改為Sql Server compact edition
什麼是Sql Server Compact Edition(Sqlce)?其實Sqlce已經出現有一段時間了,在之前是Sql Server 2005 Mobile edition,後來改為Sql Server compact edition.
到目前最新的版本是Sqlce V3.5 SP1,以Visual Studio開發工具來說VS2005是直接支援了Sqlce V3.1,而VS2008則是直接支援Sqlce V3.5(請注意是沒有SP1的版本)。
Sqlce是屬於檔案型的資料庫,在一開始你可能會想,SQL Server Express跟SQL Server Compact這兩種資料庫到底有什麼不同,那麼下面這篇文章可以參考看看Choosing Between SQL Server Compact 3.5 and SQL Server Express;Sqlce不只可以在行動裝置上使用,他也可以在一般的desktop作業系統上使用,跟Express版本最關鍵性的差異性就是Express版本是以*服務*的方式執行,而compact不是;在連線數上compact的版本也有限制,但是compact edition版本體積小,部署容易,所以在這部分可以依據需求,去考量你要使用的版本。
有些離題了,今天要談的是compact edition在行動裝置上的使用。首先在VS2008一安裝好之後就有支援Sqlce 3.5,如果要升級到Sqlce 3.5 SP1,這時候要注意一下在VS2008 SP1中並沒有包含這個部分,可以參考之前整理的這篇文章[使用VS2008搭配sql compact 3.5 SP1要留意版本;在使用Sqlce 3.5 SP1時必須要另外下載、安裝,下載的位置可以到這邊Microsoft SQL Server Compact 3.5 Service Pack 1 for Windows Mobile,安裝好了之後,以我的電腦來說,會在C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices的位置找到Sqlce 3.5 SP1要用的參考,組件版本是3.5.5692.0,如下圖]
在開發相關的應用程式時,要記得確認/更新一下Sqlce組件的參考。
那麼等到程式開發完成之後,在行動裝置上也必須要安裝Sqlce的Runtime,而相關的cab位置就在C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices資料夾中,在資料夾中會看到wce400、wce500、Client的資料夾,其中wce400跟wce500就是放Sqlce runtime的相關檔案,而Client資料夾裡面放的是如果你需要直接從裝置連線到MS Sql Server的話,那麼必須在安裝Client資料夾中的檔案。
進到wce500(這邊以這個版本為例),你會看到很多資料夾,這邊就要依照你平台類型去選擇,以模擬器來說的話是ArmV4i這個資料夾,進到裡面之後也是會看到好多個檔案,一下子還真搞不懂到底是要幹啥用的。這邊做個簡單的說明,檔案部分大致可以歸類為三種
1. sqlce.ppc.xxx / sqlce.phone.xxx
這個就是sqlce core,主要的runtime,一定要安裝才能順利運作
2. sqlce.dev.xxx
這個是sql的工具,類似Management Studio工具的東西,不過跑在裝置上是簡單型的
3. sqlce.repl.xxx
這是要用到覆寫相關的功能的話就必須要安裝
Sqlce.dev工具安裝好之後就會在Mobile裝置上有像下圖的工具可以使用,直接點sdf檔案之後就可以叫出來了。
這邊要特別提一下,Sqlce 3.5的資料庫檔案,如果你要打開來編輯內容或是操作等等,必須要使用VS2008或是Sql server 2008的工具,VS2005跟Sql server 2005的工具是沒有支援編輯sqlce 3.5的資料庫檔案的。
那麼如果有舊版本的資料庫檔案(例如3.1版本的),在sqlce 3.5的環境上,他會告訴你資料庫檔案的版本不符合,那麼要如何升級資料庫檔案呢?我們可以利用程式來升級,例如下面的方式(記得要加入相關的參考)
Try
Dim en AsNew SqlServerCe.SqlCeEngine("Data Source =" & GetAppPath() & "\Northwind.sdf")
en.Upgrade()
Catch ex As Exception
''錯誤處理
EndTry
或是依照這篇文章去做也可以[如何在Windows Mobile中開啟命令列,這樣就可以順利將資料庫檔案升級到最新版本了。]
接下來就是對資料庫的實際操作了,在裝置上對於sqlce的操作跟在桌上型的操作是相當類似的,所以大致上都能夠通用。要特別注意的部分就是資料庫的連線字串設定以及一些T-SQL的語法。