最近來了興趣,研究了一下嵌入式資料庫,主要有兩個代表:sqlite和firebird(embed版)。是IBExpert。
這兩個資料庫都有.net資料提供者,對於我們搞.net的人來說無疑是個好訊息。
那麼如何在.net使用呢?
sqlite非常方便,只要把其ado.net的dll加入進來便可直接存取了,當然,其連接字串有
sqlite無疑是最小的一個,單檔案程式,只有400k,而它產生的資料庫檔案也是單檔案。它支援大部份SQL92標準,不過遺憾的是不支援外鍵與預存程序。最新的版本是6.11版,其第三方圖形化GUI,我用的是Sqlitespy。
firebird其實並不是純粹的嵌入式資料庫,embed版只是其眾多版本中的一個。不過做的也很小,把幾個dll加起來才不到5M,但是它支援絕大部份SQL92與SQL99標準,贊一個先!最新的版本是2.1,其圖形化GUI特殊的寫法。
但firebird就要費點腦子了。首先把其ado.net的dll加入進來,然後加入資料庫本身的dll到項目根目錄中。你不放在根目錄中也可以,但是要在連接字串中指明dll的路徑。一共有6個檔案:fbembed.dll,firebird.msg,ib_util.dll,icudt30.dll,icuin30.dll,icuuc30.dll。其中fbembed.dll是主檔案。
連接字串寫法如下:
FbConnectionStringBuilder cs = new FbConnectionStringBuilder();
cs.Database = @"j:\abc.fdb";
cs.ServerType = FbServerType.Embedded; //這句話一定不能掉
//如果不放在根目錄,則需要下面一句指明路徑,但如果是asp.net程式,則一定要寫這句話來進行顯示聲明。
cs.ClientLibrary = @"bin\fbembed.dll";
FbConnection con = new FbConnection(cs.ToString());
下面就可按照ado.net的一般寫法往下寫了。
這兩個資料庫與Sql server 有所不同,需要在文檔中仔細查驗,在這裡,我就不多說了。
總之,這兩個資料庫是不可多得的東東喔!
參考:
Sqlite官網:
www.sqlite.org
Sqlite中文社區:
www.sqlite.com.cn
firebird官網:
http://www.firebirdsql.org
Firebird中文社區:
http://www.firebird.net.cn
firebird 串連嵌入式版本
http://www.host01.com/article/Net/00020003/0562810192156410.htm
sqlite,Access和Firebird的效能比較
http://www.cnblogs.com/kevin-moon/archive/2008/12/01/1344658.html
一次資料庫的選型,FireBird勝出
http://s0o0e.javaeye.com/blog/251636