用 ADOQuery 来执行Oracle的存储过程,怎么得到该存储过程的输出参数?
xhtbx 2004-12-07 10:18:53 各位,我不想用TADOStoredProc控件,希望可以用ADOQuery执行带有输出参数的Oracle存储过程.
也查看了相关的帖子,可是按照帖子上面的做法,总是出问题,比如说:
Oracle的过程名字为Proc_Test,输入参数为param1 Varchar2(20),输出参数为param2 Varchar2(20)。
我是这样调用的,
with qrySetInResult do
begin
Close;
SQL.Text := 'EXEC Proc_Test param1,:param2 output';
ExecSQL;//用Open也试过了
showmessage(Trim(Parameters.ParamByName('param2').Value));
end;
调试的时候,总是提示:‘不正常的定义参数对象.提供了不一致或是不完整的信息.’.
我的感觉,通过TADOStoredProc用'EXEC Proc_Test param1,:param2 output'这种方式调用带输出参数的过程,好像当数据库是SQLSERVER时可以,但是并不适合Oracle.
希望各位高手能够给予指点。再说明一下:不使用TADOStoredProc控件,用ADOQuery执行带有输出参数的Oracle存储过程,先谢过了大家了。