【第177期 June 5, 2012】
 

研發新視界

嵌入式資料庫SQLCE 4.0-使用Visual Studio 2010開發

作者/范銘傑

[發表日期:2012/6/5]


前言

嵌入式資料庫廣泛的被使用與應用,除了目前常見的SQLite外,微軟也推出Microsoft SQL Server Compact Edition系列,從以往的Microsoft SQL Server 2000 WindowsR CE 版,發展到現在最新的SQL Server CE 4.0。

SQLCE是免費的輕量級關聯式資料庫引擎,除了管理本機資料之外,還能與 Microsoft SQL Server 其他版本進行同步處理,加上共用一般程式設計模型,在今日隨時要連接的操作環境中,這可讓程式開發人員快速且輕易地移轉技術與知識,並讓程式開發人員建立適合的應用程式,諸如:建置 ASP.NET 網站,Windows 桌面應用程式,還有智慧型手機APP的開發…等。

SQLite

這是一個與SQLCE同質性高且最常拿來比較的另一套嵌入式資料庫。

SQLite是一個開放原始碼的嵌入式關聯式資料庫,它在2000年由D. Richard Hipp發佈,它能減少應用程式管理資料的開銷,而且本身的可攜性好,很容易使用,安裝SIZE很小,高效而且可靠。SQLite嵌入到使用它的應用程式中,它們共用相同的執行空間,而不是單獨的一個程序,從外部看,它並不像一個RDBMS(relational database management system),但在程式內部,它卻是完整且包含engine的資料庫。

SQLite最大的特色莫過於是開放原始碼的工具,並且可以跨平台,尤其在Linux的開發環境中,很常可以發現它的存在,除此之外,其他的特色大致就是嵌入式資料庫本身該具備的功能。

在Windows的環境下,SQLite也是一個相當好用的工具,但是在純微軟架構開發的環境中,SQLite在於資料庫的轉換上,卻比不上SQLCE來得好用,尤其SQLCE4.0的版本上,我們可以直接把SQLCE的輕量型資料庫直接掛載到SQL Server上,直接轉換成大型SERVER的資料庫,就實務來看,對於系統的DEMO是相當便利的功能,因為我們不用在本機安裝著龐然大物SQL Server,就可以透過SQLCE進行系統的展示,效能上SQLCE4.0也有著不錯的調升,而且較具備實際環境運作的真實性。

SQL CE 4.0 安裝

一、下載並安裝SQL CE 4.0

前往微軟依所使用環境x86/x64下載並安裝 SQL CE 4.0
http://www.microsoft.com/downloads/zh-tw/details.aspx?familyid=033cfb76-5382-44fb-bc7e-b3c8174832e2

二、因為SQL CE4.0在VS2010發行之後才發布,所以VS2010本身除了沒有預設安裝SQL CE 4.0之外,也沒有相關的管理工具,因此為了便於使用,建議將 VS2010升級到SP1並新增安裝SQL CE 4.0 Access Tool http://go.microsoft.com/fwlink/?LinkId=212219 ,安裝完畢後,則可以在VS2010專案中選擇新增SQL CE4.0的選項。


《圖一》


使用SQL CE4.0

一、新增DB


《圖二》


二、設定DB儲存路徑與密碼


《圖三》


三、SQLCE 4.0本身有提供sample【Northwind.sdf】,展開後便可以看到DB本身所包含的table。


《圖四》


四、在DB上面按滑鼠右鍵便可以透過”建立資料表”,新增TABLE。


《圖五》


五、也可以透過”新增查詢”,查看TABLE裡面所包含的資料。


《圖六》


在專案中使用SQLCE 4.0

一、欲在專案程式中使用SQLCE 4.0,除了將建好DB加入專案外(當然也可以在程式中利用語法Create動態產生新的DB),還需要加入相關SQL CE的DLL,包含: C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\ sqlceca40.dll,sqlcecompact40.dll,sqlceer40TW.dll,sqlceme40.dll,sqlceoledb40.dll,sqlceqp40.dll,sqlcese40.dll 以及C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v4.0\Desktop\System.Data.SqlServerCe.dll並將這些dll的屬性設定為”永遠複製”,如此,在程式中才有辦法引用到SQLCE的SQL語法。


《圖七》


二、如果原本的專案就已經有使用SQLCE,只是版本不同,則可以使用4.0版所提供的語法,就可以把舊有版本的DB做升級的動作。


《圖八》


結論

嵌入式資料庫發展至今,各項工具皆已有相當成熟的應用與效能,針對現今常見的SQLite與SQLCE來說是各有擁護者,使用時機端看開發者的開發環境與預期的效用,畢竟SQLite是Open Source所以相當依賴往後的維護與發展,但是彈性度較高,開發者甚至可以自行校調內部架構,而SQLCE有著微軟撐腰,功能自然會越來越廣泛,自然應用上會有不錯的表現,使用上也有可能更加便利,因為很多功能微軟說不定都已經先行模組包裝好了。

參考資料

http://demo.tc/List/Coding/TSQL