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

請問關於TSimpleDataSet的sql語法

尚未結案
mirage
初階會員


發表:40
回覆:101
積分:28
註冊:2004-01-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-06 07:11:38 IP:211.76.xxx.xxx 未訂閱
db1的l_no欄位資料如為: 2004/08/06 上午08:00 2004/08/06 上午09:00 ….. 等 現要找今天的資料表資料 變數l_no:=datetostr(now); sqltxt1:=’select * from db1 where l_no like:l_no‘; With SimpleDataSet1 do begin close; dataset.commandtext:=''; dataset.commandtext:=sqltxt1; Params.ParamByName('l_no').AsString:=l_no '%'; Open; End; 請問先進: 第一次執行時正確. 第2次執行時出現 'no value for parameter' , 不知哪錯了???
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-06 09:34:26 IP:210.65.xxx.xxx 未訂閱
Hi mirage,    試試以下寫法:
procedure TForm1.Button1Click(Sender: TObject);
var
  Sqltxt : String;
begin
  Sqltxt :='select * from db1 where l_no like :l_no';
  with SimpleDataSet1 do
    begin
      Close;
      Params.Clear;
      DataSet.CommandText := Sqltxt;
      DataSet.Params.ParseSQL(SimpleDataSet1.DataSet.CommandText,True);
      DataSet.Params.ParamByName('l_no').AsString := DateToStr(now)   '%';
      Open;
    end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
mirage
初階會員


發表:40
回覆:101
積分:28
註冊:2004-01-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-06 18:41:23 IP:211.76.xxx.xxx 未訂閱
引言: Hi mirage, 試試以下寫法:
procedure TForm1.Button1Click(Sender: TObject);
var
  Sqltxt : String;
begin
  Sqltxt :='select * from db1 where l_no like :l_no';
  with SimpleDataSet1 do
    begin
      Close;
      Params.Clear;
      DataSet.CommandText := Sqltxt;
      DataSet.Params.ParseSQL(SimpleDataSet1.DataSet.CommandText,True);
      DataSet.Params.ParamByName('l_no').AsString := DateToStr(now)   '%';
      Open;
    end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- < face="Verdana, Arial, Helvetica"> 上述執行時出現錯誤 : SimpleDataSet1:parameter 'l_no' not found. 另 在SimpleDataSet1的 1.DataSet.CommandText輸入select * from db1 where l_no like :l_no 2.Params加入l_no with SimpleDataSet1 do begin Close; DataSet.Params.ParseSQL(SimpleDataSet1.DataSet.CommandText,True); DataSet.Params.ParamByName('l_no').AsString := DateToStr(now) '%'; Open; end; 第一次執行時正確. 第2次執行時出現: dbexpress reror:[0x0009]:invalid parameter
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-09 11:12:08 IP:210.65.xxx.xxx 未訂閱
Hi mirage,    奇怪,我用 D7 + SQL Server 2000 測試是沒問題啊!怪異! 如果真的不行,改為以下方法試試:
procedure TForm1.Button2Click(Sender: TObject);
var
  Sqltxt : String;
begin
  Sqltxt := 'select * from db1 where l_no like '   QuotedStr(DateToStr(Now)   '%');      with SimpleDataSet1 do
    begin
      Close;
      DataSet.Params.Clear;
      DataSet.CommandText := Sqltxt;
      Open;
    end;
end;
ps:請問,db1中的 l_no 欄位 Type為何(DateTime,String...) ?DataBase 為何? ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
mirage
初階會員


發表:40
回覆:101
積分:28
註冊:2004-01-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-11 12:35:52 IP:220.130.xxx.xxx 未訂閱
引言: Hi mirage, 奇怪,我用 D7 SQL Server 2000 測試是沒問題啊!怪異! 如果真的不行,改為以下方法試試:
procedure TForm1.Button2Click(Sender: TObject);
var
  Sqltxt : String;
begin
  Sqltxt := 'select * from db1 where l_no like '   QuotedStr(DateToStr(Now)   '%');      with SimpleDataSet1 do
    begin
      Close;
      DataSet.Params.Clear;
      DataSet.CommandText := Sqltxt;
      Open;
    end;
end;
ps:請問,db1中的l_no 欄位 Type為何(DateTime,String...) ?DataBase 為何? ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- < face="Verdana, Arial, Helvetica"> Fishman先進您好: db為mysql , l_no 為 string .
系統時間:2024-09-18 13:43:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!