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

ADOQuery的Parameter赋值问题

尚未結案
hzahou_test
一般會員


發表:1
回覆:0
積分:0
註冊:2004-10-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-26 21:16:07 IP:219.130.xxx.xxx 未訂閱
我在ADOQuery1中执行sql是如果参数出现多次,那么赋值给它时往往只对第一次出现时起作用,如执行下面的sql select * from customer where fac:=fac union select * from vendor where fac:=fac union select * from customer_and_vendor where fac:=fac ADOQuery1.close; ADOQuery1.Parameters.ParamByName('fac').Value:=edit1.text; ADOQuery1.open; 这时只抓出了table:customer的资料,请问各位大大,有没有好的解决方法。 我又不想用ClientDataSet.
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-26 23:51:07 IP:218.171.xxx.xxx 未訂閱
請問妳是否下錯了,應該是如此吧 select * from customer where fac=:fac union select * from vendor where fac=:fac union select * from customer_and_vendor where fac=:fac 其它的請妳參考Union的限制. 另外請問妳所用的SQL為何? MS SQL? 希望能對你有所幫助.
cashxin2002
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-27 09:02:48 IP:202.62.xxx.xxx 未訂閱
您好﹗    不使用Parameters﹐而改用StringReplace(取代字串)函數試試﹕
begin
  With ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select * from customer where fac = factemp union ')
    SQL.Add('select * from vendor where fac = factemp union ')
    SQL.Add('select * from customer_and_vendor where fac = factemp');
    SQL.Text := StringReplace(SQL.Text, 'fcatemp', Edit1.Text, 
      [rfReplaceAll, rfIgnoreCase]);
    Open;
  end;
end;
========================= 大病初愈﹐休養調整中... =========================
------
忻晟
系統時間:2024-06-02 0:37:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!