最近在学习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了解的,请指点下, 谢谢。
解决方案 »
- 以下两个代码都是获取图片上任意一个点的RGB,我现在要提取任意多点的RGB(是任意多点),也就是我在输入图片所对应的X,Y坐后,就能得到其RGB,并将所有得到的RGB保存在TXT里面。
- Acess数据库 货币型 对应的是什么类型的数据?
- 是不是Delphi只能引用提供ocx类的控件,不能引用提供.dll类的控件?
- [delphi]求完整的画“实线段”的例子。
- 就字段的和---不用SQL语句求
- 救命啊,为什么我自己写的dll自己调用总是出错!
- 有趣的问题, 光标不在了?
- 我想在窗体外按下鼠标右键 然后执行语句 怎么写???
- 请问什么是 纯数据库
- 哪位老大知道字体大小和显示所占像素的换算关系?
- delphi7如何通过IP地址连接远程服务器上的数据库
- 如何统计多个日报表
但是我可以链接上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的参数。 谢谢哦