调用Oracle存储过程返回数据集的有关问题

调用Oracle存储过程返回数据集的问题
Oracle存储过程
CREATE OR REPLACE PROCEDURE MYDATA.AAA /* (参数, 参数...) */
(
v_id in NUMBER,
c_outdata out SYS_REFCURSOR
)
IS

v_sql varchar2(200);
BEGIN
v_sql :='select * from userinfo where userid='||v_id;
open c_outdata for v_sql;
END ;
/

DELPHI 调用

var
  ADOStoredProc:TADOStoredProc;
begin
  ADOStoredProc:=TADOStoredProc.Create(nil);
  try
  try
  ADOStoredProc.Connection:=ADOConnection;
  ADOStoredProc.Close;
  ADOStoredProc.ProcedureName:=MYDATA.AAA';
  ADOStoredProc.Parameters.CreateParameter('c_id',ftInteger,pdInput,10,123);
  ADOStoredProc.Open;
  except
  on E:Exception do
  begin
  Msgbox(E.Message,mtError,[mbok],0);
  end;
  end;
  finally
  ADOStoredProc.Free;
  end;
  end;


错误信息:



弄了很久了就是不行



------解决方案--------------------
我的异常网推荐解决方案:oracle存储过程,http://www..net/oracle-develop/177537.html
------解决方案--------------------
首先在查询分析器里调试存储过程,然后检查输入参数是否正确。
------解决方案--------------------
参考下我以前的:
http://topic.****.net/t/20061124/10/5181888.html
可能是ADO的问题
(你的Oracle存储过程本身没问题,也可能是表字段类型问题)


------解决方案--------------------
我测试下,果然又是ADO的问题
你用Microsoft OLE DB Provider for Oracle就应该OK了