跳到主要內容

10.2 出現後,這個訊息註定讓 Delphier 幾家歡樂幾家愁啊

早在 XE4 時期,在線上手冊就出現這麼一段話:
dbExpress, which is described in this tutorial, is being deprecated.

當時 FireDAC 並不完全成熟,還在想何時才能完全取代 dbExpress 還是未知數,更何況 BDE 現在還活得頭好壯壯啊!



然後 dbExpress 就在 2017 年終於被 EMBT 打入冷宮了!
Marco 指出,未來沒有計畫繼續支援 DBX。也等同宣告當初 DBX 可以跨平台的諾言,是個謊言










































這要我怎麼接受!

dbExpress 居然是比 BDE 還要短命的資料庫存取技術啊啊啊!





咳…

悲情結束,既然木已成舟,還是回頭盤點一下 dbExpress 曾經為我們帶來什麼往日的美好:

  • 羽量級的資料存取技術 (搭配 3rd Driver 就能做到 Direct connect database)
  • 唯讀的 DataSet
  • 單向的 DataSet


.......................在沒課金的情況下,dbExpress 還真的是很廢啊!


商用場合下,明明就是一顆 TQuery 可以搞定的場合。

在 dbExpress 下卻硬是要嵌入 TSQLQuery + TDataSetProvider + TClientDataSet 三顆元件。


你有事嗎你!


到底為什麼要捨簡入繁!明明就有很好用的 BDE 和 ADO,再怎麼樣也不需推這種陽春型的技術吧!


其實,dbExpress 技術的核心便是:【DataSnap】── Delphi 唯二的三層架構。

要在這種不討喜的架構下硬推,註定 dbExpress 被炮的命運。

可是明白箇中道理的 Delphier,卻也被那弱到翻過去的中間層 Socksrvr.exe, httpsrvr.dll 打入砍掉重練地獄深淵之中。







誰叫你不課金呢? (你看看 RemObject 的中間層寫得多快多穩啊!)
.
.
.
只能說 Borland 的課金策略把一個好好的框架搞爛。


幸好,後來接手的 EMBT 導入了行動平台的開發框架,進而讓 DataSnap 有真正發揮的舞台。


既然 Delphier 普遍接受了 DataSnap 的開發方式,那 dbExpress 也算是階段性任務完成,。



【dbExpress,念你是一代宗師,你自盡吧!】


沒用過 dbExpress 的人笑了。

熟悉 dbExpress 的人開始為接下來的轉換煩腦了,但你對 DataSnap 的經驗會讓 FireDAC 為你延續下去的。


深夜寫了篇古早技術回顧文總結:

一顆元件可以黑個 15 年 (2002 - 2017),真是委曲你了。

留言

這個網誌中的熱門文章

對於 Delphi 10.1 Berlin 推出的看法

在 Delphi 10.1 Berlin 中,大幅度地修正既有的 Bug 數量,這對於舊有用戶無疑是吃了很大的定心丸。

只是,在【教育 Delphi 開發者】上,依然還有完善的空間,這對於潛在的市場才是最有幫助的。

就我們所知,FireMonkey framework 是一個著重在跨平台的解決方法。

但是每個平台都自己的特色,就算是 FireMonkey,勢必也需要考量每個平台的設計重點而調整開發手法。

免費、可商業使用的 Delphi 和 C++ Builder Berlin 介紹及下載教學

Delphi / C++ Builder Starter Edition (入門版) 是繼 Turbo Delphi Explorer 和 Turbo C++ Explorer 之後,走向推廣路線的產品。


這是體驗世界上最棒的開發工具一個很好的機會!

Delphi ORM Generator

What is your code pattern? Like below:

MyDataSet.FieldByName(‘MYFIELD’).AsString := something…;
MyDataSet.Fields[n].AsString := something…;


Why can not used ORM(Object-relational mapping) code in Delphi?
Ex:
Employee.EmpNo := 1;
Employee.Name := 'Eden';


Because TDataSet! It's always only one mapping method: FieldByName. You are always only to use:

IDE design mode, drop down TDataSet...Open TFields box, append all fields...Type innumerable "FieldByName" and "Fields" in Editor...
That is not your best solution, ever!

You need "Strong Type"! It is like String, Integer, Double etc!


So "Delphi ORM generator" application is born! as shown below:



How to connect?
“Delphi ORM generator” that uses ODBC, it can connection any database.

“With Table”
It can select multi items to build source unit in right memo. (Select only one Table in current version)

“With SQL” and “By MyBase”
It provides analysis SQL statement / MyBase data to build source unit (O…