有關Paradox資料庫之查詢 |
尚未結案
|
帥氣銀行
一般會員 發表:13 回覆:40 積分:15 註冊:2005-05-31 發送簡訊給我 |
先說明一下我的狀況
Paradox資料庫內,有一會員檔,數目約10萬筆
我做了一個會員查詢的功能
希望能在edit change時就做一次查詢(模糊查詢)
程式碼如下
qCust.Close;
qCust.SQL.Clear;
qCust.SQL.Add(' select * from BCUST where CUST_NO like ''%' edtCust.Text '%'' ');
qCust.SQL.Add(' or CUST_NAME like ''%' edtCust.Text '%'' ');
qCust.Open;
但問題是也許資料筆數太多
所以每當輸入一個字的時候作搜尋造成速度很慢
請問是否有其他方法可以達成我要的功能?
(在輸入資料改變時就查詢 有點像Windows的自動完成的感覺) 謝謝
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 先說明一下我的狀況 Paradox資料庫內,有一會員檔,數目約10萬筆 我做了一個會員查詢的功能 希望能在edit change時就做一次查詢(模糊查詢) 程式碼如下 qCust.Close; qCust.SQL.Clear; qCust.SQL.Add(' select * from BCUST where CUST_NO like ''%' edtCust.Text '%'' '); qCust.SQL.Add(' or CUST_NAME like ''%' edtCust.Text '%'' '); qCust.Open; 但問題是也許資料筆數太多 所以每當輸入一個字的時候作搜尋造成速度很慢 請問是否有其他方法可以達成我要的功能? (在輸入資料改變時就查詢 有點像Windows的自動完成的感覺) 謝謝我之前也想像你這樣的做法, 只是like本身就很慢, 再加上每打一字就查一遍, 不用多久你的windows資源就會被耗盡, 實不建議, 後來我放棄這樣的做法, 就在打完一次查詢, 不過你想要加快速度, db檔唯一方法就是加掛索引(對要查詢的欄位), 但要注意, db檔加掛索引, 會拉高資料庫的毀損率(在系統不穩當機時), 不得不考慮哦! |
帥氣銀行
一般會員 發表:13 回覆:40 積分:15 註冊:2005-05-31 發送簡訊給我 |
引言: 我之前也想像你這樣的做法, 只是like本身就很慢, 再加上每打一字就查一遍, 不用多久你的windows資源就會被耗盡, 實不建議, 後來我放棄這樣的做法, 就在打完一次查詢, 不過你想要加快速度, db檔唯一方法就是加掛索引(對要查詢的欄位), 但要注意, db檔加掛索引, 會拉高資料庫的毀損率(在系統不穩當機時), 不得不考慮哦!感謝P.D前輩的指教 我目前也只能用打完之後再查詢的方法 不然查詢速度實在太慢 我只是想問問有沒有辦法可以達成而已^^" 不過TTable好像無法達到TQuery的模糊搜尋的功能?? 而index的問題之前在板上有看過一些跟Paradox的討論 所以已有心理準備...:P 再次感謝P.D前輩 |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
引言: 感謝P.D前輩的指教 我目前也只能用打完之後再查詢的方法 不然查詢速度實在太慢 我只是想問問有沒有辦法可以達成而已^^" 不過TTable好像無法達到TQuery的模糊搜尋的功能?? 而index的問題之前在板上有看過一些跟Paradox的討論 所以已有心理準備...:P 再次感謝P.D前輩TTable 可以做模糊搜尋啊! 你必須使用 filter功能 table1.filtered:= true; table1.filter:= '欄位=''' 搜尋字串 '*'''; 我記得應該是用 * 來代表, sql 是用 % , 不過仍然是要借助索引才能快!!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |