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

關於中文查詢的問題

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


發表:6
回覆:7
積分:2
註冊:2008-06-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-07-10 11:33:34 IP:211.23.xxx.xxx 訂閱
想請問各位先進,小弟最近新學DELPHI遇到了一些小問題爬遍論壇好像無解決方法,不得以發文請教。
就是中文查詢是否能找尋多筆資料中的關鍵字然後逐一列出來,
我嘗試過Filter. Locate. Lookup. GOTOKEY. Range
都無法搜尋出來好像DALPHI都只能搜尋開頭第一個字
EX:星巴克咖啡好貴,要搜尋兩百筆資料內所有的咖啡,然後用DBGRID顯示出來
望請各位指教 多謝。


christie
資深會員


發表:30
回覆:299
積分:475
註冊:2005-03-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-07-10 16:24:23 IP:203.73.xxx.xxx 未訂閱
使用 SQL.

舉例 SELECT * FROM TAB WHERE FLD LIKE '%星%'

===================引 用 wildsky 文 章===================
想請問各位先進,小弟最近新學DELPHI遇到了一些小問題爬遍論壇好像無解決方法,不得以發文請教。
就是中文查詢是否能找尋多筆資料中的關鍵字然後逐一列出來,
我嘗試過Filter. Locate. Lookup. GOTOKEY. Range
都無法搜尋出來好像DALPHI都只能搜尋開頭第一個字
EX:星巴克咖啡好貴,要搜尋兩百筆資料內所有的咖啡,然後用DBGRID顯示出來
望請各位指教 多謝。


------
What do we live for if not to make life less difficult for each other?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-07-10 23:58:08 IP:61.67.xxx.xxx 未訂閱
你列的的 指令中, 只有 FILTER 可以做的到, 要不就用 SQL LIKE語法
FILTER , 查一下 FILTER 的用法
wildsky
一般會員


發表:6
回覆:7
積分:2
註冊:2008-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-07-11 12:35:37 IP:211.23.xxx.xxx 訂閱
謝謝回覆的先進,不過沒辦法用SQL
因為之前開發的人是用TABLE,所以..........

所以用TABLE開發的就沒辦法了是嗎?
編輯記錄
wildsky 重新編輯於 2008-07-13 21:43:52, 註解 無‧
st33chen
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-07-14 09:02:49 IP:122.116.xxx.xxx 訂閱
TABLE1 的 FILTER 先不設定任何東東;
TABLE1 的 FILTERED 設為 TRUE;
TABLE1 的 ONFilterRecord 設為
accept := pos('星',table1.fieldbyname('FLDNAME').asstring)>0
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
wildsky
一般會員


發表:6
回覆:7
積分:2
註冊:2008-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-07-14 19:56:07 IP:211.23.xxx.xxx 訂閱
感謝大大,我這就來試試,測完在來PO結果。
jackiemi2_seed
中階會員


發表:37
回覆:97
積分:76
註冊:2006-09-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-07-17 08:38:40 IP:61.218.xxx.xxx 訂閱
table1.ONFilterRecord :=pos('星',table1.fieldbyname('FLDNAME').asstring)>0;
這一段compiler不過
可以請st33chen兄或wildsky兄詳細回答一下嗎??
===================引 用 st33chen 文 章===================
TABLE1 的 FILTER 先不設定任何東東;
TABLE1 的 FILTERED 設為 TRUE;
TABLE1 的 ONFilterRecord 設為
accept := pos('星',table1.fieldbyname('FLDNAME').asstring)>0
------
OS : Win 7 pro
Program : Delphi 7
DataBase : Ms Sql 2008
st33chen
尊榮會員


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-07-17 13:23:42 IP:122.116.xxx.xxx 訂閱
>>>table1.ONFilterRecord :=pos('星',table1.fieldbyname('FLDNAME').asstring)>0;

是 TABLE1 的 EVENTS 中的 OnFilterRecord 事件的 handler, 也就是

procedure TForm1.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
accept := pos('星',table1.fieldbyname('FLDNAME').asstring)>0;
end;


而且, FLDNAME 要換成您 TABLE1 中的欄位名稱
應該很清楚了
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2008-07-17 13:29:56, 註解 無‧
wildsky
一般會員


發表:6
回覆:7
積分:2
註冊:2008-06-02

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-07-17 19:23:04 IP:211.23.xxx.xxx 訂閱
accept := pos('星',table1.fieldbyname('FLDNAME').asstring)>0

簡單的說妳要改的應該就只有......'星'和('FLDNAME')而已

('FLDNAME')就是欄位名
jackiemi2_seed
中階會員


發表:37
回覆:97
積分:76
註冊:2006-09-11

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-07-17 20:25:39 IP:203.70.xxx.xxx 訂閱
感謝st33chen兄及wildsky兄的詳細回答
------
OS : Win 7 pro
Program : Delphi 7
DataBase : Ms Sql 2008
系統時間:2024-04-19 3:55:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!