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

Delphi 5 想用如 like '09408%' 而且這個字串要設成參傳入

答題得分者是:Fishman
730sin86
一般會員


發表:1
回覆:1
積分:0
註冊:2005-09-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-24 03:02:47 IP:218.172.xxx.xxx 未訂閱
您好,請問專家: (我對程式設計幾乎外行,買了書,接觸六個月) delphi v.5 (Build 5.62) 我想查詢一個dbf檔案中的兩個欄位 rdate(日期字串,如0940831)及hospno(醫院代碼) 用Q_hosp(TQuery)在它的SQL property中置入 select a.hospno , b.hospnm from doseh a, hospital b where a.hospno = b.hospno group by a.hospno, b.hospnm order by hospno, b.hospnm 放置DBLookupComboBox1元件從DataSource取得Q_hosp篩選出的資料(醫院代碼) 放置Edit_ym: TEdit來輸入另一條件(日期字串,但是想用如 like '09408%'而且這個字串要設成參傳入) 放置Qry_dno: TQuery元件:在程式碼中設兩個參數,如下 procedure TForm1.Button1Click(Sender: TObject); begin Qry_dno.Close; Qry_dno.SQL.Clear; Edit_hnm.Text := trim(DBLookupComboBox1.text); Qry_dno.SQL.Add('select dno,rdate,cusid,hcseq,ddays,hospno from doseh'); Qry_dno.SQL.add('where doseh.rdate like ''=:ym' '%'''); Qry_dno.SQL.Add('and hospno=:trim_hno'); Qry_dno.ParamByName('ym').AsString := (Edit_ym.Text); Qry_dno.ParamByName('trim_hno').AsString := trim(DBLookupComboBox1.text); //Qry_dno.SQL.Add('order by dno'); if(not Qry_dno.prepared) then Qry_dno.Prepare; Qry_dno.open; SME2XLS_doseh.Execute//購買的元件,將DataGrid中的data轉為MS Excel檔 end; 出現錯誤訊息 Project1 Invalid use of keyword. Token: =? Line Number: 2. 我只知道where doseh.rdate like ''=:ym' '%'' 設這樣的參數傳入,肯定有錯! 請教先進如何解決,或是本網站有否類似問題,請指點一下,謝謝! 還有,不知Delphi中的Help files那裡找得到中文版?
Fishman
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-24 08:39:06 IP:210.65.xxx.xxx 未訂閱
Hi 730sin86,    試試這樣
  ...
  Qry_dno.SQL.add('where doseh.rdate like :ym   '   QuotedStr('%'));
  ...
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-24 11:11:20 IP:202.62.xxx.xxx 未訂閱
您好﹗    也可試試改成如下紅色處﹐并請注意SQL敘述中的空格問題﹕
procedure TForm1.Button1Click(Sender: TObject);
begin
  Qry_dno.Close;
  Qry_dno.SQL.Clear;
  Edit_hnm.Text := trim(DBLookupComboBox1.text);
  Qry_dno.SQL.Add('select dno,rdate,cusid,hcseq,ddays,hospno from doseh');
  Qry_dno.SQL.add(' where doseh.rdate like :ym');
  Qry_dno.SQL.Add(' and hospno=:trim_hno');
  //Qry_dno.SQL.Add(' order by dno');
  Qry_dno.ParamByName('ym').AsString := Edit_ym.Text+'%';
  Qry_dno.ParamByName('trim_hno').AsString := trim(DBLookupComboBox1.text);
  if not Qry_dno.prepared then
    Qry_dno.Prepare;
  Qry_dno.open;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
730sin86
一般會員


發表:1
回覆:1
積分:0
註冊:2005-09-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-24 13:35:59 IP:218.172.xxx.xxx 未訂閱
兩個方法都行!!! 非常感謝 Fishman ; cashxin2002 五星級會員 版主 本論壇對整個社會的貢獻卓著, 真希望我能對大家也有實際的付出。
系統時間:2024-09-09 13:06:32
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!