UpDateSQLにパラメータを渡すには?

解決


印刷屋  2008-01-23 08:03:30  No: 29437

今までは、QueryやIBQueryにInsert文等を渡して、Query自体にParamByNameで変数を渡していたのですが、都合によりUpDateSQL、IBUpDateSQLを使うことにしました。
UpDateSQL内の各SQL文に変数を渡すには、どうすればよいのでしょうか?

//Insert Into COMPANY (KEYCODE,COMNAME) Values(:KEYCODE,:COMNAME)
IBQuery.Add('SELECT * FROM COMPANY');
IBQuery.Open;
for cnt := 1 to EndCnt do
begin
//ここで繰り返しでレコードを追加(or編集)を続けるつもり
IBUpDateSQL.Apply(ukInsert);
end;
IBQuery.Close;


もしかして、  2008-01-23 18:57:34  No: 29438

全く別のシステムだけど、こんな感じだったかな...(不安)

begin
  with  IBUpdateSQL1 do
  begin
    InsertSQL.Clear;
    InsertSQL.Add( 'insert into Table_Name    ');
    InsertSQL.Add( '(ju_tokui,  ju_chuno)     ');
    InsertSQL.Add( 'values                    ');
    InsertSQL.Add( '(:ju_tokui,  :ju_chuno)   ');
    ParamByName('ju_tokui').AsString      :=  LEd_tokui.Text;
    ParamByName('ju_chuno').AsString      :=  LEd_chuno.Text; 
  end;
end;


印刷屋  2008-01-23 19:49:45  No: 29439

UpDateSQLはParamByNameを持ってないですよね。

Query側にパラメータを渡すとパラメータがありませんとなりますし。


igy  2008-01-23 20:13:51  No: 29440

試していませんが、↓のような方法ではだめですか?
IBUpDateSQL.Query[ukInsert].ParamByName('xxxxx').AsString := zzzzz;


GT-BASS  2008-01-24 01:28:05  No: 29441

Params.ByName('###').AsString
で書けませんか?
IBUpdateSQLを使ったことは有りませんが、IBDataSetではこの様に書いています。


印刷屋  2008-01-24 07:18:47  No: 29442

皆様ありがとうございます。
igyさんから頂いた情報が欲しかったのです。
おかげさまで、テーブルを開きっぱなしで、更新作業ができるようになりました。
IBQuery.Add('SELECT * FROM COMPANY');
IBQuery.Open;
for cnt := 1 to EndCnt do
if Locate('KEYCODE',grid.Cells[0,cnt],) then
begin
  IBUpDateSQL.Query[ukModify].ParamByName('KEYCODE').AsString := grid.Cells[0,cnt];
  IBUpDateSQL.Query[ukModify].ParamByName('COMNAME').AsString := grid.Cells[1,cnt];
  IBUpDateSQL.Apply(ukModify);
end else begin
  IBUpDateSQL.Query[ukInsert].ParamByName('KEYCODE').AsString := grid.Cells[0,cnt];
  IBUpDateSQL.Query[ukInsert].ParamByName('COMNAME').AsString := grid.Cells[1,cnt];
  IBUpDateSQL.Apply(ukInsert);
end;
end;
IBQuery.Close;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加