免費又強大的 MySQL 一直是資料庫的首選,而 Delphi 則是我最愛的 Windows App 開發工具。Delphi 之前一直都是透過 ADO 連接資料庫,這次想說換點新鮮的方式(也沒多新鮮,單純是自己沒用過),透過 dbExpress 連接 MySQL。
本來想說應該是個 easy case,沒想到卻卡了半天,原來不是元件一拉、選項一勾那麼簡單,再加上莫名的堅持要採用 UTF-8 的方式連線,又多卡了好幾天,網路上說明的文件不少,只好自己來寫筆記。
MySQL
首先來看 MySQL 的設定,如果是全新安裝只要在設定 default character set 時選好預設編碼方式為 utf8,往後建立 Schema 或 Table 時就不用擔心還要調整編碼。(以下以 MySQL Community Server 5.0.67 版 為例)
如果已經裝好 MySQL 想確認是否為 Unicode,到 MySQL Command Line Client 下
SHOW VARIABLES LIKE 'c_%';
看到類似下面視窗就表示有支援 UTF-8 啦。
Delphi 2009
要讓 Delphi 2009 能順利抓到 MySQL 的 Driver Library 得先複製下列檔案
C:\Program Files\MySQL\MySQL Server 5.0\bin\libmySQL.dll
到
C:\WINDOWS\system32
接下來是 Delphi 2009 內的連線設定,這裡採用 dbExpress 連接 MySQL,dbExpress 跟 ADO 的優劣就不多說了。從 Delphi 7 開始的設定方式應該都沒什麼改變,這裡用 Delphi 2009 當範例。
其中比較要注意的是
ConnectionName*: MySQLConection
Driver: MySQL
ServerCharSet: UTF8
要讓 dbExpress 支援 UTF-8,ServerCharSet 要設定 UTF8,就是這四個字,當初為了這個搞好久。
Delphi 是透過 dbxmys.dll 連接 libmysql.dll,dbxmys.dll 像是 dbExpress 跟 MySQL Driver 的 Adapter,libmysql.dll 是 MySQL 提供的 DB Driver,可能因為授權關係,所以才要自己複製 libmysql.dll。
為了Delphi 2009連接mysql
回覆刪除找了好多元件,MyDAC,Zeoslib
原來這裡就有這麼簡單好處理的方法
謝謝你的分享