全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2523
推到 Plurk!
推到 Facebook!

delphi 與mysql的輸入中文問題

 
UB
一般會員


發表:18
回覆:19
積分:7
註冊:2007-02-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-08 16:43:22 IP:211.76.xxx.xxx 訂閱
各位大大好 ~
我遇到一個問題,結果來 k.top 找答案,結果找到有人和我類似的問題,可是.... 似乎還沒有得到解決
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=85918
我的問題是
小弟在使用delphi用BDE連線至mysql時候,執行時候輸入中文,他都會出現這一串字,輸入英文卻不會
General SQL error.
[MySQL][ODBC 3.51 Driver][mysqld-5.0.27-community-nt]Data too long for column 'name' at row 1.

可是我設定的欄位大小是足夠可以容下我所輸入的字串,不知是否小弟有設錯了什麼嗎?

小弟的環境:
Delphi 7.0
MySQL 5.0.27

Mysql 的環境:


資料表的設定:
Character set = big5
而我 name 的欄位最長的資料是 三個中文字


為了把問題分開檢查,我弄了最簡單的資料表做測試
資料表名稱: test
裡面只有一個欄位 name varchar(8)


我用 Tquery (query1)
query1.sql.clear;
query1.sql.add('insert into infos values('林某某'));
query1.ExecSQL;


結果出現錯誤 :
General SQL error.
[MySQL][ODBC 3.51 Driver][mysqld-5.0.27-community-nt]Data too long for column 'name' at row 1.

請各位先進幫忙看一下,這個問題該如何解決 ~ 感激不盡 !!
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-08 16:59:01 IP:60.248.xxx.xxx 訂閱
既然你的資料庫是使用 big5 當編碼
那就將連線的其他相關屬性都調整成 big5 而不要用 utf8
你可以在程式啟動連接資料庫後,先 Query 元件下 SQL 執行 "set names big-5" 試試看
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
UB
一般會員


發表:18
回覆:19
積分:7
註冊:2007-02-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-03-08 17:39:06 IP:211.76.xxx.xxx 訂閱
感謝 Bestlong 大大 ~
我只在跑SQL 前 先跑
set names big5

也就是
query1.sql.clear;
query1.sql.add('set names big5');
query1.execsql;

問題就解決了 ~

Bestlong 大大的回覆超快速的 ~ 感激不盡 ~ ^^

系統時間:2024-05-08 21:40:30
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!