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

zeos的DBGrid出現亂碼

答題得分者是:st33chen
od11112001
一般會員


發表:8
回覆:2
積分:2
註冊:2008-08-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-09 13:36:34 IP:140.128.xxx.xxx 訂閱
我們在MYSQL設定BIG5

顯示中文都正常

但是當我們DELPHI的程式連MYSQL後

要在DBGrid產生中文字資料時

都會出現「??」像亂碼的字

無法正常顯示中文字

我們使用的版本是DELPHI6 平台則是WINDOWS XP

請問哪裡出了錯呢?

希望高手能幫忙解答 非常感謝!!
------
hi
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-09 14:58:07 IP:122.116.xxx.xxx 訂閱
您好,

我正好碰過類似問題, 記得解法是

1. 在 my.ini 的 [mysqld] 中加一筆 init-connect ='SET NAMES big5'
2. 重開 mysql service
3. 加一個非 root 等級的 user
4. 在 delphi 中用 該新user 去連 mysql.

聽說 set names 在 root 無效.

請試看看


===================引 用 od11112001 文 章===================
我們在MYSQL設定BIG5

顯示中文都正常

但是當我們DELPHI的程式連MYSQL後

要在DBGrid產生中文字資料時

都會出現「??」像亂碼的字

無法正常顯示中文字

我們使用的版本是DELPHI6 平台則是WINDOWS XP

請問哪裡出了錯呢?

希望高手能幫忙解答 非常感謝!!
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
od11112001
一般會員


發表:8
回覆:2
積分:2
註冊:2008-08-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-10 11:12:48 IP:140.128.xxx.xxx 訂閱
您好  首先謝謝您的回答

請問step1的my.ini是apache中的my.ini檔嗎?
還是說是放在其它地方呢?
我是改 放在apache中的my.ini檔

在step3時 我們有新加入一個user
權限與root一樣
在開啟MYSQL使用這個新的user可以進入看資料庫
但是在delphi利用這個新的user登入 要將connect設為true時
卻出現一行"SQL Eroor:Client does not support authentication protocol requested by server;consider upgrading MySQL client."的訊息視窗

請問該怎麼解決呢?謝謝您

===================引 用 st33chen 文 章===================
您好,

我正好碰過類似問題, 記得解法是

1. 在 my.ini 的 [mysqld] 中加一筆 init-connect ='SET NAMES big5'
2. 重開 mysql service
3. 加一個非 root 等級的 user
4. 在 delphi 中用 該新user 去連 mysql.

聽說 set names 在 root 無效.

請試看看


===================引 用 od11112001 文 章===================
我們在MYSQL設定BIG5

顯示中文都正常

但是當我們DELPHI的程式連MYSQL後

要在DBGrid產生中文字資料時

都會出現「??」像亂碼的字

無法正常顯示中文字

我們使用的版本是DELPHI6 平台則是WINDOWS XP

請問哪裡出了錯呢?

希望高手能幫忙解答 非常感謝!!
------
hi
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-10 13:05:38 IP:122.116.xxx.xxx 訂閱
1. my.ini : 我的環境是在 安裝 mysql 的 folder 中, c:\program files\mysql\MySQL Server 5.0
2. 新使用者的權限不要給 和 root 一樣的 super.
3. init-connect 聽說要 mysql 5 以後才 support.

另外一個方法可以先試試看,
用原來的環境, 然後 connect 後即下一個 sql 命令給 mysql

query1.sql.text := 'SET NAMES big5';
query1.execsql;

然後再執行其他作業
試試看
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2008-09-10 13:18:37, 註解 無‧
od11112001
一般會員


發表:8
回覆:2
積分:2
註冊:2008-08-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-09-12 11:12:27 IP:140.128.xxx.xxx 訂閱
您好:

我們使用的是navicate版本的資料庫 所以不知道my.ini檔到底放在哪裡

是否下列的做法與navicate相同?

謝謝!!感激不盡!!!!>//<
===================引 用 st33chen 文 章===================
1. my.ini : 我的環境是在 安裝 mysql 的 folder 中, c:\program files\mysql\MySQL Server 5.0
2. 新使用者的權限不要給 和 root 一樣的 super.
3. init-connect 聽說要 mysql 5 以後才 support.

另外一個方法可以先試試看,
用原來的環境, 然後 connect 後即下一個 sql 命令給 mysql

query1.sql.text := 'SET NAMES big5';
query1.execsql;

然後再執行其他作業
試試看
------
hi
mypigbaby
高階會員


發表:11
回覆:168
積分:155
註冊:2006-07-20

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-09-17 12:55:14 IP:203.73.xxx.xxx 訂閱
navicat mysql
這個只是單純的client而非mysql本身

如果不能在MY.INI加
那在每次的QUERY前加入

query1.sql.text := 'SET NAMES big5';
query1.execsql;
也是一樣的
如果您要用navicat去下select的話
就變成

SET NAMES big5;
select * from xxx where ooo
這樣



===================引 用 od11112001 文 章===================
您好:

我們使用的是navicate版本的資料庫 所以不知道my.ini檔到底放在哪裡

是否下列的做法與navicate相同?

謝謝!!感激不盡!!!!>//<
===================引 用 st33chen 文 章===================
1. my.ini : 我的環境是在 安裝 mysql 的 folder 中, c:\program files\mysql\MySQL Server 5.0
2. 新使用者的權限不要給 和 root 一樣的 super.
3. init-connect 聽說要 mysql 5 以後才 support.

另外一個方法可以先試試看,
用原來的環境, 然後 connect 後即下一個 sql 命令給 mysql

query1.sql.text := 'SET NAMES big5';
query1.execsql;

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