顯示具有 DBX - Interbase / FireBird 標籤的文章。 顯示所有文章
顯示具有 DBX - Interbase / FireBird 標籤的文章。 顯示所有文章

2015/03/28

Firebird Embedded 連線注意的地方

Delphi的DBX一直都無法連線到Firebird 1.5。

老是出現「DBX Error: Driver could not be properly. Client may be misiing, not installed properly, of the wrong version, or thr driver may be misiing from the system path.」

原來是DBX Driver不只是單認system path,連VendorLib也強迫認「fbclient.dll」。

難怪我就算把VendorLib設為「[DirPath]\fbembed.dll」也完全連接不上Firebird Embedded。

結論:
1.把Firebird的fbembed.dll複製到Delphi安裝目錄\Bin。
2.fbembed.dll改名為fbclient.dll

連結成功!

2010/05/26

DBEXPRESS 1.0/2.0 不支援 SQLDialect 3

最近在玩Firebird 2.1.3,練習的對象是它內附的Example
當一切都部署好後,SQLQuery Open!
居然給我跳出一個大錯誤:
"Client SQL dialect 1 does not support reference to BIGINT datatype"

傻眼了,去找了一下,發現也有網友遇到這個問題
DBX Driver也有加入 SQLDialect=3 ,沒效果。

後來跑去下載個 InterXpress for Firebird 回來,換上driver後,搞定。

嗯…看來BCB6也到了極限了。

2009/10/28

免費的DBX for Firebird driver with RAD2007~XE3

今天在dbExpress Driver for Firebird看到Google group - dbExpress Firebird社群


現在換成這個網站:dbExpress Driver for Firebird

看到他們有寫出支援 Formerly known as Borland or CodeGear Delphi / C++ Builder
2007, 20092010XE, XE2 and XE3的DBeXpress driver for Firebird

目前作者還沒有要收費的打算,不過也歡迎使用者在試用後依喜好捐錢給他。

這樣才能做出更優更好的驅動出來造福使用者 ^ ^

不過對於仍然還在使用BCB6開發的我來說,只能說「殘念」囉~~~~ Orz

2009/02/11

當 C++ Builder 遇上 Firebird

最近將自己專案裡所連結的Database由 BDE的 Parabox變更為 Firebird,而連結方式也由萬年不化的 BDE,改成由當時 Borland主推的 dbExpress來連結。

當初在做設計變更時,針對這個程式,我想要:
1. 切換到 MySQL、MS SQL、Oracle等之類的SQL資料庫能夠短時間修改完成
2. 封裝時能夠更簡潔
3. 嚐試更新的資料庫程式設計
4. 未來在變為 Multi-Tier架構時較能無痛升級

事實上,就是一個字 --「爽」!

反正…對dbExpress就是很嚮往,我就是要改就對了。

話說,Paradox是屬於「單機檔案型資料庫」而 Firebird是屬於「SQL型資料庫」,也就是說,必須裝個服務(SERVICE)才能夠使用。
這可怎麼辦才好呢?

這時突然看到「Embedded」--將SQL指令封裝在一個 dll檔案中,做為DB與程式間的橋樑,在單機的環境中就不須安裝服務了。

「做得非常好呀!」

Embedded中有三個產品 -- SQLite、Berkeley DB、Firebird embedded 三個。

Berkeley DB就不用看了,為了提高效能而完完全全的使用API來處理。
(等我開新專案時再來考慮)

SQLite 則有Borland的三方 DBX Driver,但使用上 bug一堆 (最明顯的是Refresh後資料庫連線會斷開,而且必須重開應用程式才能連上),連自帶的demo也開不了內附的db……什麼鬼!

最後就是 Firebird Embedded,其實主要的好處就是與 Interbase相通,ib的 dbx driver可以直上 Firebird,很方便!

於是乎,就開始將程式修改連結方式,一直到…

「咦!2.1.0出了耶,趕快來更新!」

不更新還好,一更新…

「哇哇哇!我table的合併顯示出不來了!」

在 DBX上的操作開始出狀況了,於是…又改回為1.5.5.......

1.5.5很好嗎?
只要 「fbembed.dll」、「ib_util.dll」這兩個檔案就可以啟動,有沒有很好?當然好!
但在壓力測試時,在總筆數達4萬筆後…

450mb突破!

什麼鬼!最好是能暴增到這麼多啦!
而且效能變得更差! 在這之後,每 insert into 1筆資料,需要

5~10秒!

真是驚死人的數據!而且無解……
怎麼辦…程式改完才出現這樣的情況…

而且,這不是C++ Builder的問題哦,因為在FB專用的gui管理工具所呈現的,也是一樣出乎意料的慢,所以這應該是 FB 1.5.5的問題。

在不得已的情況下,只好再試試看 FB最新的 2.1.1版了。
將450MB的DB匯出 SQL檔,然後再輸入到新的FB2.1.1 DB中(這個工作就花了8個小時...)

多少?

3 MB

…一整個無言,而且效能上依舊犀利

那就繼續用 BCB6 + FB 吧……