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

請問如何於 access 2003 資料表下使用 like

答題得分者是:smallfox
ufjjc
一般會員


發表:18
回覆:47
積分:23
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-06-04 00:05:31 IP:114.33.xxx.xxx 訂閱
請問如何於 access 2003 資料表下使用 like,


ex:
select * from unicode where value like '*游*' ->與 access 2003 內使用正常,
經由 adoQuery 執行卻得不到正確結果。
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-06-04 09:10:55 IP:59.120.xxx.xxx 未訂閱
得不到正確結果??
請問您在delphi中的語法是怎麼寫的呢??
會不會是符號的問題??

提供以下連結給您參考一下~
http://delphi.ktop.com.tw/board.php?cid=30&fid=1498&tid=97591



===================引 用 ufjjc 文 章===================
請問如何於 access 2003 資料表下使用 like,


ex:
? select * from unicode where value like '*游*' ->與 access 2003 內使用正常,
? 經由 adoQuery 執行卻得不到正確結果。
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-06-04 15:11:14 IP:59.120.xxx.xxx 未訂閱


編輯記錄
老大仔 重新編輯於 2010-06-04 15:11:55, 註解 無‧
老大仔 重新編輯於 2010-06-04 17:36:26, 註解 無‧
ufjjc
一般會員


發表:18
回覆:47
積分:23
註冊:2002-05-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-06-05 22:27:11 IP:114.33.xxx.xxx 訂閱
謝謝老大仔的提醒,
先說明 不是 sql 內語法沒加 引號的問題

於 使用 Microsoft Access 2000 / 2003 內使用 sql 語法是 可以得到資料,
經由 adoQuery 對 Access2000 資料庫 下sql 語法 傳回 記憶體不足,
對Access 2003 資料庫 下 sql 語法 傳回 空白,
突發奇想於Access 建立 一個 view 並透過 參數傳入 結果 同樣為 空白,

所以繼續努力找方法

bighm
一般會員


發表:5
回覆:21
積分:15
註冊:2006-10-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-06-07 00:46:05 IP:59.104.xxx.xxx 未訂閱
SQL語法應該是 select * from unicode where value like '%%'
請試試看
ufjjc
一般會員


發表:18
回覆:47
積分:23
註冊:2002-05-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-06-09 22:07:54 IP:114.33.xxx.xxx 訂閱

===================引 用 bighm 文 章===================
SQL語法應該是select * from unicode where value like '%%'
請試試看

謝謝回覆
以上語法 於adoQuery 傳回 記憶體不足
於 Office Access2003 內
要改成 select * from unicode where value like '', 才有資料
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2010-06-12 23:26:42 IP:211.74.xxx.xxx 訂閱
我想應該是跟你使用的 ADO 連接方式有關.
在 Access 2000/2003 內是使用 * 作為前後字元沒錯
但若使用 Microsoft Jet 4.0 OLE DB Provider 則要使用 % ,
但如果是使用 ODBC 或其他 provider 就有可能會出現問題.
建議連接 Access 2000/2003 還是使用 Microsoft Jet 4.0 OLE DB 做連接比較優.
ufjjc
一般會員


發表:18
回覆:47
積分:23
註冊:2002-05-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2010-06-14 13:41:53 IP:114.33.xxx.xxx 訂閱
謝謝您的回覆

經由您提醒,再將問題反覆測試:
1.測試環境是使用 Microsoft Jet 4.0 OLE DB Provider,Access 2003 ,
mdb 內的某個欄位內的
存在Unicode 資料,
例如:,故使用 like 時 會得到記憶體 不足的問題。

2.如果欄位中全部是 使用非 unicode 的中文資料,譬如 big5 ; 使用 like + '%' 是可以的到正確的結果的。

3.
在此謝謝 老大仔bighmsmallfox,由於老大仔bighmsmallfox 都是 正確的答案,但自己未說明程式環境,所以未得到正確的結果,
在問題結案後,
因為 smallfox 的 再次提出質疑, 所以覺得 分數 應該由他得。



===================引 用 smallfox 文 章===================
我想應該是跟你使用的 ADO 連接方式有關.
在 Access 2000/2003 內是使用 * 作為前後字元沒錯
但若使用 Microsoft Jet 4.0 OLE DB Provider 則要使用 % ,
但如果是使用 ODBC 或其他 provider 就有可能會出現問題.
建議連接 Access 2000/2003 還是使用 Microsoft Jet 4.0 OLE DB 做連接比較優.
編輯記錄
ufjjc 重新編輯於 2010-06-14 13:47:35, 註解 無‧
ufjjc 重新編輯於 2010-06-14 13:50:37, 註解 無‧
smallfox
高階會員


發表:2
回覆:113
積分:128
註冊:2003-02-19

發送簡訊給我
#9 引用回覆 回覆 發表時間:2010-06-14 18:22:28 IP:203.67.xxx.xxx 訂閱

謝謝你的給分.

我使用 Microsoft Jet OLE DB 來連結 Access 也有很長一段時間了
從 Delphi 5, 7, 2006, 2009 到現在的 2010, 不論是 Unicode or 非 Unicode,
有關你的記憶體不足的訊息, 我到是第一次聽到耶,
建議你再 check 一下 TADOQuery 的 CacheSize 是否夠大 ?
and LockType 屬性吧 !!

ufjjc
一般會員


發表:18
回覆:47
積分:23
註冊:2002-05-21

發送簡訊給我
#10 引用回覆 回覆 發表時間:2010-06-14 19:59:58 IP:114.33.xxx.xxx 訂閱
回覆文章時,找不到可以上傳檔案;故在此重新發表一篇新的文章,在此致歉。
系統時間:2017-10-19 11:25:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!