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

SQL語法疑問....

尚未結案
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-22 22:59:28 IP:218.165.xxx.xxx 未訂閱
我寫了一個聯集查詢,但是出現了一點小問題,當我查詢時沒有輸入書名的話,程式會把書名以空白字元帶入,造成查詢結果空白,請問該如何做才能避掉這個問題?    第二個問題是,日期查詢語法該怎麼寫@@我若用底下的寫法會出現error,說between運算元中缺少and,請問我該加在那裡?    
procedure TForm5.Button1Click(Sender: TObject);
var
   fdate1, fdate2: string;
begin
   fdate1 := AnsiReplaceText(FormatDateTime('yyyy,mm,dd', dtp1.Date), ',', '/');
   fdate2 := AnsiReplaceText(FormatDateTime('yyyy,mm,dd', dtp2.Date), ',', '/');
   with datamodule3.ADOQuery1 do
      begin
         active := true;
         close;
         sql.Clear;
         sql.add('select * from 借閱記錄 where 學號='   #39   edit1.Text   #39);
         //sql.Add('and 日期='   #39   fdate1   #39   'between'   #39   fdate2   #39);
         sql.Add('and 書名='   #39   edit3.Text   #39   'order by 日期');
         open;
      end;
end;
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-22 23:37:42 IP:218.16.xxx.xxx 未訂閱
procedure TForm5.Button1Click(Sender: TObject);
var
   fdate1, fdate2: string;
begin
   fdate1 := AnsiReplaceText(FormatDateTime('yyyy,mm,dd', dtp1.Date), ',', '/');
   fdate2 := AnsiReplaceText(FormatDateTime('yyyy,mm,dd', dtp2.Date), ',', '/');
   with datamodule3.ADOQuery1 do
      begin
         active := true;
         close;
         sql.Clear;
         sql.add('select * from 借閱記錄 where 學號='   #39   edit1.Text   #39);
         sql.Add('and 日期 between'   #39   fdate1   #39   'and'   #39   fdate2   #39);
         if Trim(edit3.Text) <> '' then
           sql.Add('and 書名='   #39   edit3.Text   #39   'order by 日期');
         open;
      end;
end;
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-22 23:45:14 IP:61.216.xxx.xxx 未訂閱
procedure TForm5.Button1Click(Sender: TObject);
var
   fdate1, fdate2: string;
begin
   fdate1 := AnsiReplaceText(FormatDateTime('yyyy,mm,dd', dtp1.Date), ',', '/');
   fdate2 := AnsiReplaceText(FormatDateTime('yyyy,mm,dd', dtp2.Date), ',', '/');
   with datamodule3.ADOQuery1 do
      begin
         active := true;
         close;
         sql.Clear;
         sql.add(' select * from 借閱記錄 where 學號= '   #39   edit1.Text   #39);
         sql.Add(' and 日期 between '   #39   fdate1   #39   ' AND '   #39   fdate2   #39);
         if Trim(edit3.Text)<>'' then
         sql.Add(' and 書名= '   #39   edit3.Text   #39 );
         sql.Add(' order by 日期 ');
         open;
      end;
end;
發表人 - chih 於 2003/05/22 23:51:12
nachi
初階會員


發表:40
回覆:116
積分:31
註冊:2003-02-26

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-05-23 07:43:00 IP:218.165.xxx.xxx 未訂閱
原來Delphi要這樣寫啊@@ 之前用vb寫沒這個問題... 腦筋太死了,竟然沒想到... 謝謝 >
系統時間:2024-06-27 1:06:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!