TClientDataSet Filter 不支援某些中文字 如 %水% |
缺席
|
VICSYS
初階會員 發表:21 回覆:64 積分:32 註冊:2002-10-10 發送簡訊給我 |
|
VICSYS
初階會員 發表:21 回覆:64 積分:32 註冊:2002-10-10 發送簡訊給我 |
對不起! 上一封不小心 按下 Enter !
用 DELPHI 7 SP2 來測試 TClientDataSet Filter 結果如下 Filter 內容為 NAME LIKE '%水%' 結果, "水果" "水晶" 出不來! 如果 NAME LIKE '%果%' 則正常, 再者 NAME LIKE '水%' 也正常. 就是 '%某些中文字% 不正常 :( 用更新版的 Madis.dll 可以解決嗎? (不知道 Delphi 7 可不可用 Delphi 2006 的 Madis.dll?) 或者有其他的方法? THX! 註1:我的專案無法用 OnFilterRecord 來解決! 因為條件是使用者自行下達, 如果要解譯 Filter 的話, 工程太大! 註2:測試 DBE 的 TQuery 時, 用 NAME='*水*' 結果也是一樣. |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
suda
一般會員 發表:17 回覆:63 積分:16 註冊:2002-05-10 發送簡訊給我 |
如果是ado的話試試修改 adodb 下列的function function VarDataSize(const Value: OleVariant): Integer; // Result := Length(PWideString(@TVarData(Value).VOleStr)^); if Result = 0 then |
VICSYS
初階會員 發表:21 回覆:64 積分:32 註冊:2002-10-10 發送簡訊給我 |
主檔的部份就是用 select * from tablename where fieldname like '%水%'
不過, 明細檔是採用 FieldDataSet 的方式, 不想再傳送 CommandText! 主檔的部份: 直接用 SQL 的 WHERE 來完成 明細的部份: 想說明 Filter 來模擬 SQL WHERE 的效果, 但是 '%水%' 的問題, 不知如何解決 當然如果明細也是採用 CommandText 就如同 Fishman 大大所言 用 SQL 即可! 再者 ClientDataSet 如果設定 packetrecord -1 時, 應該會把資料全部 Fetch 至記憶體之中吧, 下達 Filter 時, 不會再去讀取資料, 也就是說不管是用何種資料庫引擎! 如 DBE ADO DBX... 應該不能解決 '%水%' 的問題吧! 我再測試 ADO 修改 adodb function VarDataSize ... 如果可以解決 那麼我是用 DBX 照理說明也可以解決才對! |
VICSYS
初階會員 發表:21 回覆:64 積分:32 註冊:2002-10-10 發送簡訊給我 |
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
没有办法。delphi 对中文的支持不好,一直没有支持 unicode。这个 filter 不支持中文的问题,一直存在。
===================引 用 文 章=================== 對不起! 上一封不小心 按下 Enter ! 用 DELPHI 7 SP2 來測試 TClientDataSet Filter 結果如下 Filter 內容為 NAME LIKE '%水%' 結果, "水果" "水晶" 出不來! 如果 NAME LIKE '%果%' 則正常, 再者 NAME LIKE '水%' 也正常. 就是 '%某些中文字% 不正常 :( 用更新版的 Madis.dll 可以解決嗎? (不知道 Delphi 7 可不可用 Delphi 2006 的 Madis.dll?) 或者有其他的方法? THX! 註1:我的專案無法用 OnFilterRecord 來解決! 因為條件是使用者自行下達, 如果要解譯 Filter 的話, 工程太大! 註2:測試 DBE 的 TQuery 時, 用 NAME='*水*' 結果也是一樣. |
VICSYS
初階會員 發表:21 回覆:64 積分:32 註冊:2002-10-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |