Sql語法撰寫問題 |
尚未結案
|
No-where
一般會員 發表:31 回覆:53 積分:16 註冊:2002-09-05 發送簡訊給我 |
|
carter6
初階會員 發表:53 回覆:108 積分:42 註冊:2002-12-16 發送簡訊給我 |
您好
您應該是困擾 Sql 後的 Where 要怎麼寫吧?
您可以用字串去將您要判斷的訊息傳入
假設:
Var
s : string ;
begin
s := 您要的判斷式 ;
if Tquery.Active then
Tquery.Close ;
Tquery.Sql.Clear ;
Tquery.Sql.Add('Select * From Tabel ') ;
Tquery.Sql.Add(' Where "' s '") ;
Tquery.Open ;
end ; 就可以了
至於判斷式程式就要您自己去寫嘍
因為我不知道您的架構
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi No-where, 參考一下以下討論: http://delphi.ktop.com.tw/topic.php?topic_id=52117 看看是否對你有幫助 ----------------------------------
小弟才疏學淺,若有謬誤尚請不吝指教
----------------------------------
------
Fishman |
No-where
一般會員 發表:31 回覆:53 積分:16 註冊:2002-09-05 發送簡訊給我 |
hello...
現在我都是用 chih的作法 procedure TForm1.Button1Click(Sender: TObject);
var SQLStr:String;
begin
SQLStr:='Select * from Tabel WHERE 1=1 ";
If Edit1.Text<>'' then
SQLStr:=SQLStr ' AND SEX =' Edit1.text;
If Edit2.Text<>'' then
SQLStr:=SQLStr ' AND degree =' Edit2.text;
If Edit3.Text<>'' then
SQLStr:=SQLStr ' AND Major =' Edit3.text;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add(SQLStr);
Query1.Open;
end; 不過這樣的方式就不能將Sql語法寫在TQuery內...
程式碼就會變的很長...
|
carter6
初階會員 發表:53 回覆:108 積分:42 註冊:2002-12-16 發送簡訊給我 |
procedure TForm1.Button1Click(Sender: TObject);
var SQLStr:String;
begin
SQLStr:= '' ;
If Edit1.Text<>'' then
SQLStr:=SQLStr ' AND SEX =' Edit1.text;
If Edit2.Text<>'' then
SQLStr:=SQLStr ' AND degree =' Edit2.text;
If Edit3.Text<>'' then
SQLStr:=SQLStr ' AND Major =' Edit3.text;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from Tabel ');
Query1.SQL.Add(' WHERE 1=1 ' SQLStr);
Query1.Open;
end; 這樣應該可以吧!!
|
asou982002
一般會員 發表:14 回覆:15 積分:5 註冊:2003-06-22 發送簡訊給我 |
|
No-where
一般會員 發表:31 回覆:53 積分:16 註冊:2002-09-05 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
No-where 你好:
我想了一個方式,你參考一下
1.先將每個元件名稱改為對應的資料庫欄位
2.參照下
引言: with SQLTMP do begin close; SQL.Clear; SQL.Add('select * from new where') ; for i:=0 to Form1.ControlCount-1 do if Form1.Controls[i] is tEdit then if Trim(tEdit(Form1.controls[i]).Text) <>'' then SQL.Add(tEdit(Form1.controls[i]).Name '=' tEdit(Form1.controls[i]).Text ' and'); SQL.savetofile('c:\SQL.txt'); open; end;3.上面的code所產生sql語法在最後會多一個 'and ' 所以要注意 我把sql語法編寫後的結果存在c:\sql.txt 方便除錯 4.Form1.controls[i] 是指元件的建立是在Form1上面(就是父系的意思)
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |