Oracle資料庫查詢語法 |
尚未結案
|
north
一般會員 ![]() ![]() 發表:10 回覆:17 積分:5 註冊:2004-08-06 發送簡訊給我 |
|
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi north,
procedure TForm1.Button1Click(Sender: TObject); Var I : Integer; FieldValid : Boolean; St : String; begin FieldValid := False; FOR I := 0 to Query1.FieldCount - 1 do begin If UpperCase(Edit1.Text) = UpperCase(Query1.Fields.Fields[i].FieldName) then FieldValid := True; if Query1.Fields.Fields[i].ClassNameIs('TStringField') then begin If St = '' then St := Query1.Fields.Fields[i].FieldName else St := ST ' || ' Query1.Fields.Fields[i].FieldName; end; end; IF FieldValid THEN St := ' where ' Edit1.Text ' like ' QuotedStr('%' Edit2.Text '%') else St := ' where ' ST ' like ' QuotedStr('%' Edit2.Text '%'); Query1.Close; Query1.SQL.Clear; Query1.SQL.Add('select * from hr_emp_base' St); Query1.Open; end;1.僅針對文字行欄位進行檢查 2.Edit1 --> 查詢欄位名稱 3.Edit2 --> 搜尋文字內容 4.紅色字體部分為 Table 名稱,欄位先定義於 Query1 內 5.若資料量大,建議不要這樣作,會很慢
------
Fishman |
north
一般會員 ![]() ![]() 發表:10 回覆:17 積分:5 註冊:2004-08-06 發送簡訊給我 |
Fishman大大你好:
關於你的程式我有寄個問題想請教一下,
procedure TFSearch.SpeedButton1Click(Sender: TObject); Var I : Integer; FieldValid : Boolean; St : String; begin FieldValid := False; FOR I := 0 to ADOQuery1.FieldCount - 1 do begin If UpperCase(Edit1.Text) = UpperCase(ADOQuery1.Fields.Fields[i].FieldName) then FieldValid := True; if ADOQuery1.Fields.Fields[i].ClassNameIs('cards') then begin If St = '' then St := ADOQuery1.Fields.Fields[i].FieldName else St := ST ' || ' ADOQuery1.Fields.Fields[i].FieldName; end; end; IF FieldValid THEN [red] St := ' where ' Edit1.Text ' like ' QuotedStr('%' Edit2.Text '%') else St := ' where ' ST ' like ' QuotedStr('%' Edit1.Text '%'); ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from Cards ' St); inputbox('','',ADOQuery1.SQL.Text); ADOQuery1.Open; end;1.這個FieldValid := False; 我不清楚是要作何用途說 2.if Query1.Fields.Fields[i].ClassNameIs('TStringField') then 這行我不清楚要做什麼用說,我把這行刪除後,才查詢的出來說 3.還有我目前只用一個Edit1.Text,所以我刪除了一些 4.紅色是我所刪除的區塊 |
Fishman
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi north, 1.因我先前測試使用 edit1.text 為搜尋欄位,edit2.text 為搜尋條件,
FieldValid 是用來判定所輸入值是否合法(是否含於該 table 內), 2.if Query1.Fields.Fields[i].ClassNameIs('TStringField') then
用來判定該欄位是否為字串型態,若是,才加入判斷條件內
------
Fishman |
north
一般會員 ![]() ![]() 發表:10 回覆:17 積分:5 註冊:2004-08-06 發送簡訊給我 |
引言: Hi north, 1.因我先前測試使用 edit1.text 為搜尋欄位,edit2.text 為搜尋條件, FieldValid 是用來判定所輸入值是否合法(是否含於該 table 內), 2.if Query1.Fields.Fields[i].ClassNameIs('TStringField') then 用來判定該欄位是否為字串型態,若是,才加入判斷條件內 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |