Sql Server Compact Edition No1.(環境安裝/升級)

什麼是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的版本)。
 
 
有些離題了,今天要談的是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
 
        接下來就是對資料庫的實際操作了,在裝置上對於sqlce的操作跟在桌上型的操作是相當類似的,所以大致上都能夠通用。要特別注意的部分就是資料庫的連線字串設定以及一些T-SQL的語法。