如小弟写的这段语句,编译无法通过。
with query1 do
begin
close;
sql.clear;
sql.add('exec proc_test(:p_deptno)');
parambyname('p_deptno').asstring:='1132';
prepare;
execsql;
end;
注:该过程是在delphi中。动态创建出来的。现在就是不懂得如何执行?
谢!
with query1 do
begin
close;
sql.clear;
sql.add('exec proc_test(:p_deptno)');
parambyname('p_deptno').asstring:='1132';
prepare;
execsql;
end;
注:该过程是在delphi中。动态创建出来的。现在就是不懂得如何执行?
谢!
你是指你贴的这段还是你的存储过程是动态创建的?
调用方式:先定义参数类型
with ThreadSP do
begin
close;
DatabaseName := FDBDb.DatabaseName; **数据库名
StoredProcName:='PAK_LIQ_TESTLIQ.PRC_TESTLIQ'; **SP名
Params.Clear;
P1[0]:=TParam.Create(Params, ptInput);
P1[1]:=TParam.Create(Params, ptInputOutput);
P1[2]:=TParam.Create(Params, ptInputOutput);
Params[0].Asstring :=''; *** 赋初值
Params[1].Asstring := '0';
Params[2].Asstring := '0';
Params[0].Name := 'in_Bra_id'; *** 变量名
Params[1].Name := 'out_Flag';
Params[2].Name := 'out_info';
end;
然后再调用就可以了。
在delphi中有专门执行存储过程的控件,执行存储过程的方法在很多书中都有介绍。
为何不用TStoredProc呢