2008年11月15日

Delphi 2009 以 dbExpress Unicode 方式連接 MySQL 5.0 設定說明

免費又強大的 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 版 為例)
2008-11-15_121833

如果已經裝好 MySQL 想確認是否為 Unicode,到 MySQL Command Line Client

SHOW VARIABLES LIKE 'c_%';

看到類似下面視窗就表示有支援 UTF-8 啦。

mysql_dos

 

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 當範例。

先拉一個 TSQLConnection 元件,設定如下圖
2008-11-15_124037

其中比較要注意的是

ConnectionName*: MySQLConection
Driver: MySQL
ServerCharSet: UTF8

要讓 dbExpress 支援 UTF-8ServerCharSet 要設定 UTF8,就是這四個字,當初為了這個搞好久。

Delphi 是透過 dbxmys.dll 連接 libmysql.dll,dbxmys.dll 像是 dbExpress 跟 MySQL Driver 的 Adapter,libmysql.dll 是 MySQL 提供的 DB Driver,可能因為授權關係,所以才要自己複製 libmysql.dll。

這樣就大功告成啦。試試看寫入日文、韓文都沒問題。
2008-11-15_130639

Related Posts Plugin for WordPress, Blogger...