最近在学习delphi数据库开发,请问一下 TADOCommand 如何调用Oracle的存储过程,如何得到存储过程的返回值啊。例如有下面一个存储过程:
sql 代码
create or replace function sp_create_XXX(
date int,
errorInfo out char,
cursor out MyType.CURSOR
)
return number
is
begin
......;//代码省略
return 0;
end sp_create_XXX;
如何使用TADOCommand 执行上面的过程,并得到函数的返回值 0,和errorInfo 的值呢。有对delphi了解的,请指点下, 谢谢。
sql 代码
create or replace function sp_create_XXX(
date int,
errorInfo out char,
cursor out MyType.CURSOR
)
return number
is
begin
......;//代码省略
return 0;
end sp_create_XXX;
如何使用TADOCommand 执行上面的过程,并得到函数的返回值 0,和errorInfo 的值呢。有对delphi了解的,请指点下, 谢谢。
但是我可以链接上oracle的数据库,使用下面的代码调用command.CommandText := 'sp_create_report'; // TODO
command.CommandType := cmdStoredProc;
command.Parameters.Clear; command.Parameters.CreateParameter('date', ftInteger, pdInput, 10, null);
command.Parameters.CreateParameter('errorInfo', ftString, pdOutput, 255, null); command.Parameters.CreateParameter('cursor', ftCursor, pdOutput, 0, null); command.Parameters.ParamByName('date').value := iDate;
try
command.Execute;
try
i:= command.Parameters.ParamValues['return']; // 如何得到存储过程的返回值啊,
sErrorInfo := command.Parameters.ParamValues['errorInfo'];
except end;
得到如下的错误:
不正常地定义参数对象。提供了不一致或不完整的信息。 sql:
ORA-06550: 第 1 行, 第 7 列:
PLS-00306: 调用 'SP_CREATE_XXX' 时参数个数或类型错误
date int,
errorInfo out char,
cursor out MyType.CURSOR
)
return number
is
begin
......;//代码省略
return 0;
end sp_create_XXX; 这个是存储过程吗?
我想用 TADOCommand 来调用该存储过程, 不需要得到cursor返回的结果,只要能正常调用该存储过程就可以了, 使用TADOCommand应该如何设置cursor的参数。 谢谢哦