怎么在VC中运用存储过程
我最近在VC中运用存储过程
发现一个问题使我无法开发下出
ADODB::_ParameterPtr ptrParamI1,ptrParamI2,ptrParamI3;
ADODB::_ParameterPtr ptrParamO1,ptrParamO2,ptrParamO3,ptrParamO4;
ADODB::_ParameterPtr ptrParamO5,ptrParamO6,ptrParamO7,ptrParamO8;
ADODB::_ParameterPtr ptrParamO9,ptrParamO10,ptrParamO11,ptrParamO12;
ADODB::_ParameterPtr ptrParamO13,ptrParamO14,ptrParamO15,ptrParamO16;
VARIANT vtI1, vtI2, vtI3;
VARIANT vtO1, vtO2, vtO3,vtO4;
VARIANT vtO5, vtO6, vtO7,vtO8;
VARIANT vtO9, vtO10, vtO11,vtO12;
VARIANT vtO13, vtO14, vtO15,vtO16;
CString caller,called; //用来取传递进来的参数
try
{
bstr_t bstrTmp(caller);
vtI1.vt = VT_BSTR;
vtI1.bstrVal = bstrTmp;
ptrParamI1 = m_ptrCommand->CreateParameter("InputKh", adBSTR, adParamInput, strlen(caller), vtI1);
ptrParamI1->Value = vtI1;
m_ptrCommand->Parameters->Append(ptrParamI1);
ptrParamI1->Value = vtI1;
bstrTmp=called;
vtI2.vt = VT_BSTR;
vtI2.bstrVal = bstrTmp;
ptrParamI2 = m_ptrCommand->CreateParameter("strCalled", adBSTR, adParamInput, strlen(called), vtI2);
ptrParamI2->Value = vtI2;
m_ptrCommand->Parameters->Append(ptrParamI2);
ptrParamI2->Value = vtI2;
bstrTmp = tbName;
vtI3.vt = VT_BSTR;
vtI3.bstrVal = bstrTmp;
ptrParamI3 = m_ptrCommand->CreateParameter("strTbName", adBSTR, adParamInput, strlen(tbName), vtI3);
ptrParamI3->Value = vtI3;
m_ptrCommand->Parameters->Append(ptrParamI3);
ptrParamI3->Value = vtI3;
vtO1.vt = VT_R4;
ptrParamO1 = m_ptrCommand->CreateParameter("nAvailMon", adDouble, adParamOutput, 4, vtO1);
m_ptrCommand->Parameters->Append(ptrParamO1);
vtO2.vt = VT_I4;
ptrParamO2 = m_ptrCommand->CreateParameter("nCallOutLtd", adInteger, adParamOutput, 4, vtO2);
m_ptrCommand->Parameters->Append(ptrParamO2);
vtO3.vt = VT_BSTR;
ptrParamO3 = m_ptrCommand->CreateParameter("strUserType", adBSTR, adParamOutput, 1, vtO3); //执行到这一部报错????
m_ptrCommand->Parameters->Append(ptrParamO3);
vtO4.vt = VT_I4;
ptrParamO4 = m_ptrCommand->CreateParameter("nRetu", adInteger, adParamOutput, 4, vtO4);
m_ptrCommand->Parameters->Append(ptrParamO4);
vtO5.vt = VT_I4;
ptrParamO5 = m_ptrCommand->CreateParameter("startTime", adInteger, adParamOutput, 4, vtO5);
m_ptrCommand->Parameters->Append(ptrParamO5);
vtO6.vt = VT_I4;
ptrParamO6 = m_ptrCommand->CreateParameter("endTime", adInteger, adParamOutput, 4, vtO6);
m_ptrCommand->Parameters->Append(ptrParamO6);
vtO7.vt = VT_R4;
ptrParamO7 = m_ptrCommand->CreateParameter("yhRate", adDouble, adParamOutput, 4, vtO7);
m_ptrCommand->Parameters->Append(ptrParamO7);
vtO8.vt = VT_I4;
ptrParamO8 = m_ptrCommand->CreateParameter("startTime1", adInteger, adParamOutput, 4, vtO8);
m_ptrCommand->Parameters->Append(ptrParamO8);
vtO9.vt = VT_I4;
ptrParamO9 = m_ptrCommand->CreateParameter("endTime1", adInteger, adParamOutput, 4, vtO9);
m_ptrCommand->Parameters->Append(ptrParamO9);
vtO10.vt = VT_R4;
ptrParamO10 = m_ptrCommand->CreateParameter("yhRate1", adDouble, adParamOutput, 4, vtO10);
m_ptrCommand->Parameters->Append(ptrParamO10);
vtO11.vt = VT_I4;
ptrParamO11 = m_ptrCommand->CreateParameter("startTime2", adInteger, adParamOutput, 4, vtO11);
m_ptrCommand->Parameters->Append(ptrParamO11);
vtO12.vt = VT_I4;
ptrParamO12 = m_ptrCommand->CreateParameter("endTime2", adInteger, adParamOutput, 4, vtO12);
m_ptrCommand->Parameters->Append(ptrParamO12);
vtO13.vt = VT_R4;
ptrParamO13 = m_ptrCommand->CreateParameter("yhRate2", adDouble, adParamOutput, 4, vtO13);
m_ptrCommand->Parameters->Append(ptrParamO13);
vtO14.vt = VT_I4;
ptrParamO14 = m_ptrCommand->CreateParameter("startTime3", adInteger, adParamOutput, 4, vtO14);
m_ptrCommand->Parameters->Append(ptrParamO14);
vtO15.vt = VT_I4;
ptrParamO15 = m_ptrCommand->CreateParameter("endTime3", adInteger, adParamOutput, 4, vtO15);
m_ptrCommand->Parameters->Append(ptrParamO15);
vtO16.vt = VT_R4;
ptrParamO16 = m_ptrCommand->CreateParameter("yhRate3", adDouble, adParamOutput, 4, vtO16);
m_ptrCommand->Parameters->Append(ptrParamO16);
m_ptrCommand->CommandText = _T("IsLegualCust");
m_ptrCommand->CommandType = adCmdStoredProc;
m_ptrCommand->ActiveConnection = ptrConnection;
m_ptrCommand->Execute(NULL, NULL, adCmdStoredProc);
}
请高手帮忙----给高分