oracle调用存储过程问题?(100分)

  • 主题发起人 主题发起人 zhj218
  • 开始时间 开始时间
Z

zhj218

Unregistered / Unconfirmed
GUEST, unregistred user!
1、生成一个包
CREATE OR REPLACE PACKAGE TypeDefine
AS
TYPE Cursor_Test IS REF CURSOR RETURN Test%ROWTYPE;
END;
2、生成一个存储过程;
CREATE OR REPLACE PROCEDURE sp_test
(resultData IN OUT TypeDefine.Cursor_Test)
AS
BEGIN
OPEN resultData FOR
SELECT a,b from test;

END;
3、在ORACLE中执行测试:
  VARIABLE v REFCURSOR;
EXECUTE sp_test(:v);
PRINT :v;

上述情况正常

delphi调用出错;
storedproc1.StoredProcName:='SP_TEST';
storedproc1.ParamByName('resultData').DataType:=ftcursor;
// storedproc1.Params[0].Name:='resultData';
StoredProc1.Prepare;
StoredProc1.ExecProc;
执行第二步就出错了,请各位指教
 
指定参数类型试试
 
老兄,以我看这个 ftcursor 的确是有问题。
我用的ADO相连的,ADOStoredproc出问题,和你的一样的。
后改用采用了 沉香屑 大侠提供的方法,改用ADODataSet,才可以了。
参考:http://www.delphibbs.com/delphibbs/dispq.asp?lid=1321421
 
我看过资料说:
ado比BDE的速度慢
 
当然了,不用ADO照样可以的。
只不过我用的是ADO而已。
 
接受答案了.
 
后退
顶部