下面这个函数,怎么能调用并取得游标类型的返回值
---------------------------------
test1:
---------------------------------
   RETURN pkg_test.myrctype
AS
   rc   pkg_test.myrctype;
BEGIN
   OPEN rc
    FOR
       SELECT  *  FROM table1;   RETURN rc;
END;

解决方案 »

  1.   

    试试:
    _RecordsetPtr pRst=pCmd.Execute;
      

  2.   

    // Open recordset.
    Cmd1->ActiveConnection = Conn1;
    Cmd1->CommandText      = bstrSP;
    Cmd1->CommandType      = ADODB::adCmdUnknown;//adCmdStoredProc;
    Rs1 = Cmd1->Execute(&vtEmpty, &vtEmpty2, ADODB::adCmdUnknown );//还是不行!!!
    Error number: 80040e51 Provider cannot derive parameter information and SetParameterInfo has not been called.
      

  3.   

    Cmd1->ActiveConnection = Conn1;
    Cmd1->CommandText      = bstrSP;
    Cmd1->CommandType      = ADODB::adCmdStoredProc;

    //Cmd1->Parameters->Refresh();Rs1 = Cmd1->Execute(&vtEmpty, &vtEmpty2, ADODB::adCmdStoredProc );Error number: 80040e14 ORA-06550: 第 1 行, 第 7 列: 
    PLS-00221: 'test1' 不是过程或尚未定义
    ORA-06550: 第 1 行, 第 7 列:
      

  4.   

    Cmd1->ActiveConnection = Conn1;
    Cmd1->CommandText      = bstrSP;
    Cmd1->CommandType      = ADODB::adCmdUnknown ;

    //Cmd1->Parameters->Refresh();Rs1 = Cmd1->Execute(&vtEmpty, &vtEmpty2, ADODB::adCmdUnknown );Error number: 80040e14 ORA-00900: 无效 SQL 语句
      

  5.   

    Cmd1->ActiveConnection = Conn1;
    Cmd1->CommandText = bstrSP;
    Cmd1->CommandType = ADODB::adCmdStoredProc;//Cmd1->Parameters->Refresh();Rs1 = Cmd1->Execute(NULL,NULL,adCmdStoredProc );
      

  6.   

    barsteng(barsteng):你这样肯定是不行的!!!
      

  7.   

    在.net ado 里好像有专门的oracle cursor type ,但vc6下到底用什么类型,又怎么转换呢?
      

  8.   

    怎么会不行呢?我的VC里就是这么用的啊,已经用了好几年了哦,没明白你说的不行是什么意思?
    在oracle环境下也测试过的
      

  9.   

    楼主说的是返回一个游标,ADO好像没有提供这样的参数类型。
    建议搜索一下以前的帖子。