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

2008年11月2日

遲來的海角七號原聲帶開箱文

話說星期一就拿到原聲帶了,但直到今天才有空打開,好好的來寫個開箱文。

先紀錄一下最近海角的原聲帶引起的一些負面風波,PTT Movie 版也一堆討論。

個人看法,對於一開始不發行原聲帶的豐華來說,在商言商沒有錯,事後看到海角大賣主動爭取發行原聲帶的作法也沒啥不妥。只是先前導演多次拜託都不發行的情況下,事後也應該要補足誠意,以免落人口舌。

先來看看主角吧,整個原聲帶的盒子,其實就是個紙盒,除了印的好像很有質感,盒子本身沒啥特別的
nEO_IMG_DSC04318

紙盒左上角的郵票、左下角的寄信人地址
nEO_IMG_DSC04319nEO_IMG_DSC04320

紙盒上半部,右邊就是著名的海角七號住址,應該是恆春郵差最近的惡夢吧。
海角迷瘋狂 恆春郵局收1千郵件
nEO_IMG_DSC04322

紙盒外的標籤和麻繩特寫,紙盒外的麻繩算是整個原聲帶最有質感的部份,這個要給豐華補血。
nEO_IMG_DSC04323nEO_IMG_DSC04324

背面印著 15 首歌歌名,有 Bonus Track 1945 演奏版喔,至於是豐華本來就要留給影迷的驚喜還是影迷的怒吼爭取來的,這就不可考了。
nEO_IMG_DSC04325nEO_IMG_DSC04326

打開紙盒首先印入眼簾的是類似信封的 CD 紙盒,就是這個 CD 紙盒讓人感到有點隨便,連個 CD 盒都不給是怎樣,弄個有質感的 CD 盒會差多少錢嗎?不要說什麼包裝仿照信封,可以打開拿到 CD 這種X話,CD 塑膠盒做得有質感也不錯阿。
nEO_IMG_DSC04327nEO_IMG_DSC04337

CD 上現在都不流行印出曲目了嗎?nEO_IMG_DSC04341

海角七號的明信片,背面翻開來原來是鈴聲下載的廣告,做得還蠻有質感的,該學學了。(自言自語中)
nEO_IMG_DSC04328nEO_IMG_DSC04329

將電影中的七封情書作成類似信紙,背面是原聲帶收錄的歌曲歌詞。愛你愛到死完整版超 High 的。
nEO_IMG_DSC04330nEO_IMG_DSC04331

盒底印著工作人員的清單。
nEO_IMG_DSC04332

再來是預購送的贈品,一個信封跟七張信紙。每張信紙印著一個顏色,七個顏色代表彩虹。
nEO_IMG_DSC04342nEO_IMG_DSC04344

 

整個原聲帶最滿意的是用麻繩打包,這種包裝方式應該很費工夫,值得鼓勵。但紙盒沒啥質感是一大缺陷,CD 盒用一個厚紙板折起來裝著,我不要這種節能減碳的包裝,給個透明塑膠 CD 盒才是王道。

2008年11月1日

笨搜網(Boomso)上線啦

trash_1這是第一個練習 Google App Engine 的作品 - 笨搜,終於趕在 10  的最後一天上線啦~

笨搜(Boomso)http://boomso.jackforfun.com/

笨搜(Boomso),取名垃圾的台語諧音,不是說這個程式是垃圾 (如果你硬要這麼說其實也行啦!),是這個網站跟垃圾有關,主要是提供一個平台讓大家可以登錄垃圾車的地點、時間,有需要的人就可以查詢啦。

當初會想要寫這個網站不是沒來由的。在一、兩個月前的某天晚上,我錯過了 19:15 這個垃圾車會經過我家大門的時間,依稀記得 20:30 還有一班垃圾車,只是地點在比較遠的巷口。於是我 20:20 就在巷口等,雖然整個巷口只有我一個人提著垃圾,但我一點也不去想是不是我記錯垃圾車時間這件事,就這樣等到 20:30,垃圾車沒來,但多了兩、三個跟我提著垃圾的人,終於在 20:40 等到垃圾車了。這 20 分鐘,就是笨搜的由來,等垃圾車無聊時想到的,夠無聊吧。

笨搜是在 Google App Engine 上開發,跟 Google 扯上邊當然要有點 Web2.0 的精神,由眾人貢獻內容,有需要的人可以自由查詢。所以可以自行新增垃圾車的時間、地點,造福大眾。除此之外再加上一點小趣味的笨搜達人,看看誰登錄最多筆垃圾車紀錄,前提是要有 Google Account,先登入後系統才會紀錄。

開發 Web 自然要碰到 JavaScript,笨搜也有使用 jQuery 這個著名的 JavaScript Library,雖然不是沒寫過 JavaScript,但對於寫習慣 Java 這種嚴謹語言的我,超級不習慣。宣告變數不用指定型態(Dynamically typed),除非看程式不然根本不知道現在握在手上的物件型態。

再加上 Google App Engine 使用 python 開發,python 也是 Dynamic programming language,整個超級痛苦。尤其我從沒寫過 python,這還真是個挑戰,連切個字串都要找文件,如果可以換成 Java 來寫,那開發時間應該可以縮短一半吧我想。

不知道是不是沒用到好的 IDE,有人跟我一樣使用 Eclipse 來開發 pythony & JavaScript 嗎?按下 . 不一定會顯示可用的 method,要自己 key,寫起來超級不順,對 method 也不熟悉,查文件就查半天,還要 try-error 才知道可不可以用。還是寫 Java 好,腦袋可以完全放在邏輯上,不用為了程式語法這種雞毛蒜皮小事卡半天。

為了符合 Web 2.0 的開發模式,免不了一上線就要宣稱自己的程式是 beta 版,好聽一點是說程式還在持續改進中,難聽一點就是把上門的用戶當作測試人員,大家心照不宣就好。

從開發到上線,少說也花了 50-60 個小時在寫程式上。下班後累了不會想開工,假日一心只想跑出去也懶得弄,前前後後就這樣拖了一、兩個月的時間,如果上班是弄這些東西應該三、五天就完成了吧,哈。

對於像我這樣拿水彩筆跟拿鉛筆一樣的人來說,即使抓了免費的 CSS Template 來改也改不太出什麼樣子,畫面就不要太苛求啦。整個網站沒太多時間測試,也沒作太多防呆功能,有問題、有建議就直接留言吧,要 hack 的手下留情阿~~~不保證建議、問題會改進,因為笨搜純粹就是個練功程式,哪時候會改版我也不知道,也許會在某個心血來潮的夜晚吧。

 

Related Posts Plugin for WordPress, Blogger...