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;
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;
_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);
CREATE OR REPLACE PROCEDURE p_CaculateReport(
rCursor IN OUT abc.T_RetDataSet, --返回结果集
iStartDate DATE, -- 开始时间
iEndDate DATE, -- 结束时间
iName VARCHAR2, -- 名称
iId NUMBER, -- 编号
)
去看一下那个连接去查一下CreateParameter 里的参数如果输入比如rcursor该传入什么类型参数等等这是个int型,你也传一个int进去好了关于时间,其实你可以传一个可变类型,就是类似于olevariant这样的,里面的内容是时间就可以了或者传一个时间的字符窜也行