真不甘心,Firebird embedded 也有最小配置啊!
就來整理一下,Firebird embedded 到底可以有多小吧!
就來整理一下,Firebird embedded 到底可以有多小吧!
- fbembed.dll (視連接 Driver 可能需要改名為 fbclient.dll 或 gds32.dll)
- icudt30.dll
- icuin30.dll
- icuuc30.dll
使用【最小配置】就可以連線 Firebird emb 資料庫。
但是會有副作用──在【每次】連線時會產生Log,並紀錄於「firebird.log」檔案,內容大致如下:
ib_util init failed, UDFs can't be used - looks like firebird misconfigured
C:\Project1\Win32\Debug\bin/ib_util.dll library has not been found
C:\Project1\Win32\Debug\ib_util.dll library has not been found
ib_util.dll library has not been found
意思是【程式找不到 ib_util.dll,所以無法使用 User-Defined Functions (UDFs) 函式庫】。
UDFs 函式庫提供一些程式應用的語法
像是【ltrim】(刪除字串左邊空白)這類非 SQL-92 語言。
所以就算不用 UDFs,仍建議加入【ib_util.dll】,避免每次連線都產生 Log 記錄。
若要使用 UDFs,除了剛才的 ib_util.dll 外,要從 Firebird Embedded 目錄裡再取出:
- intl
- udf
在資料庫的操作上難免會發生錯誤,如果要取得 Firebird 真正回傳的訊息,就必須加入:
- firebird.msg
Windows XP 前的版本
它們需要【Microsoft C/C++ Runtime Libraries】,所需檔案如下:
- Microsoft.VC80.CRT.manifest
- msvcp80.dll
- msvcr80.dll
上述檔案可以在 Firebird server 安裝檔裡找到,它們通常隨著 EXE 路徑配置,若仍無法讀取,複製到 C:\Windows\System32 下即可。
總結
Firebird emb 和 SQLite 一比較起來,明顯地落後很多
除了在部署上要注意很多細節外,Firebird emb 最小配置需要 5 mb,體積也比SQLite大上許多。
除了在部署上要注意很多細節外,Firebird emb 最小配置需要 5 mb,體積也比SQLite大上許多。
Firebird emb 最後的優勢大概只剩下可以平滑升級為 Server 版。
然而,畢竟 Firebird 的核心是 Interbase 6.0,包袱很大。
雖然不甘心,但 Firebird emb 確實是輸的一塌糊塗。
期待未來的 Firebird 3.0 emb 能有大幅度的進化。
See also:
- README_embedded.txt (In Firebird Embedded Zip files.)
- Firebird Docs: READ THIS FIRST!
- Firebird Docs: User-Defined Functions (UDFs)
- Client and server combined: Firebird Embedded Server
沒有留言:
張貼留言