firebird是一個跨平台的開源數據庫,適用interbase授權協議(IPL),從borland的interbase脫胎而來。以前用interbase/firebird的時候,發布程序的時候哪怕只有一個用戶至少也得安裝一個localserver,一些單機版的程序只好使用access來保存數據。但是微軟那個mdac偏偏常出現一些莫名其妙的問題,Access2000的數據庫文件在win98上就經常出現“插入時無法定位...”、“遇到BOF/EOF...”一類不知所雲的錯誤提示,安裝新版mdac並打上oledb補丁就能解決問題,不過一個幾百k的小程序要帶上七八兆的補丁感覺實在不好。我就一直希望能夠把interbase/firebird應用於桌面數據的存儲,就是因為那個安裝服務器的問題一直沒有好辦法。
現在終於發布了嵌入式的firdbird,我們可以用firebird embbed作為桌面數據庫了,跟C/S版的firebird數據奎一樣,對許多現代數據庫特性提供充分的支持,可以使用觸發器、存儲過程,可以自定義類型,可以自定義外部函數。而且他與firebird C/S使用相同的文件格式,也支持將一個數據庫文件存儲到多個文件,把它的數據文件放到firebird C/S上立刻就可以使用,你隨時可以把單機應用改造成C/S或者放到web上。應用程序開發與firebird C/S 沒什麼不同,可以使用它的C API,也可以使用Delphi/BCB的interbase和dbx組件,當然,安裝了odbc驅動以後,用ado也是可以的。發布程序時只需要提供一個dll,我們的fire bird應用程序就可以工作了(用ado不行,用dbx還需要midas.dll和dbexpint.dll),可以很容易地制作出安裝程序,所有的配置工作都可以由程序員自己控制,也不用擔心數據庫會被用戶直接打開進行改動了。而且據我所知,嵌入式數據庫好像還沒有支持存儲過程和觸發器的吧,Access,sqlite都不行,更不用說dbf和paradox了。