我用的是存储过程:
with 存储过程名 do
begin
Params.Clear;
p1:=Tparam.create(params,ptinput);
p2:=Tparam.create(params,ptinput);
p3:=Tparam.create(params,ptinput);
p4:=Tparam.create(params,ptoutput);
p5:=Tparam.create(params,ptoutput);
params[0].Name:='@code';
params[0].dataType:=ftstring;
params[0].ParamType:=ptinput;
params[1].Name:='@storehource';
params[1].dataType:=ftstring;
params[1].ParamType:=ptinput;
params[2].Name:='@into_store_amount';
params[2].dataType:=ftinteger;
params[2].ParamType:=ptinput;
params[3].Name:='@enough';
params[3].dataType:=ftinteger;
params[3].ParamType:=ptinputoutput;
params[4].Name:='@leave_amount';
params[4].dataType:=ftinteger;
params[4].ParamType:=ptinputoutput;
//动态建立参数
//使用存储过程
//Params[0]为传进参数,Params[1],Params[2]为传出参数
Params.ParamByName('@***').asstring:=dbedit1.Text;
Params.ParamByName('@***').asstring:=dbcombobox1.Text;
Params.ParamByName('@***').asinteger:=strtoint
(DBComboBox2.Text);
Execute;
....
....