oracle中有存储过程如下,请问VC中使用ADO的Command对象调用此存储过程时,如何写存储过程的参数,谢谢。CREATE OR REPLACE PROCEDURE p_CaculateReport(
  rCursor         IN OUT abc.T_RetDataSet,         --返回结果集
  iStartDate      DATE,            -- 开始时间
  iEndDate        DATE,            -- 结束时间
  iName           VARCHAR2,        -- 名称
  iId   NUMBER,          -- 编号
)其中abc 的定义如下:
CREATE OR REPLACE PACKAGE abc AS
  TYPE t_RetDataSet IS REF CURSOR;
END abc;

解决方案 »

  1.   

    ParameterPtr     para[3];     
    _CommandPtr     pCmd;     
      
    pCmd.CreateInstance("ADODB.Command");     
    para[0].CreateInstance("ADODB.Parameter");     
    para[1].CreateInstance("ADODB.Parameter");     
    para[2].CreateInstance("ADODB.Parameter");     
    pCmd-> ActiveConnection=m_pConn;     
                              
    pCmd-> CommandText="存储过程名"     
    para[0]=pCmd-> CreateParameter("",     adBSTR,adParamInput,     sizeof(char[50]),vVar);     //字符串型输入参数     
    pCmd-> Parameters-> Append(para[0]);     
    para[1]=pCmd-> CreateParameter("",     adInteger,adParamInput,     sizeof(int),olevariantVar);     //整型输入参数     
    pCmd-> Parameters-> Append(para[1]);     
    para[2]=pCmd-> CreateParameter("",     adBSTR,adParamOutput,     sizeof(char[50]),"");         //字符串型输出参数     
    pCmd-> Parameters-> Append(para[2]);     
    pCmd-> Execute(     NULL,     NULL,     adCmdStoredProc);   
      

  2.   

    http://blog.csdn.net/handsomerun/archive/2007/07/28/1714598.aspx?P_AVPASS=PHDGBITAVPASST
      

  3.   

    看了shakaqrj的回答,还是没弄明白该怎么写。可能是我表述的不清楚吧,我知道如何调用存储过程,只是不知道下面这个存储过程中的入参该如何设置,比如rcursor该传入什么类型参数等等。谢谢。
    CREATE   OR   REPLACE   PROCEDURE   p_CaculateReport( 
        rCursor                   IN   OUT   abc.T_RetDataSet,                   --返回结果集 
        iStartDate             DATE,                         --   开始时间 
        iEndDate                 DATE,                         --   结束时间 
        iName                       VARCHAR2,                 --   名称 
        iId     NUMBER,                     --   编号 

      

  4.   

    关于如果调存储过程,你可以看 我是菜鸟 给你的连接至于参数是什么类型…………恩,恩,CreateParameter里面不是有各种参数类型给你选了吗??
    去看一下那个连接去查一下CreateParameter 里的参数如果输入比如rcursor该传入什么类型参数等等这是个int型,你也传一个int进去好了关于时间,其实你可以传一个可变类型,就是类似于olevariant这样的,里面的内容是时间就可以了或者传一个时间的字符窜也行