ado 存储过程 CreateParameter 拒绝访问
宙斯之神 2009-05-11 10:22:05 下面语句到 createparameter异常 ,是哪里原因呢?
_variant_t strQuery;
_ConnectionPtr ADOConn;
_RecordsetPtr m_pADOSet;
if( FAILED(::CoInitialize(NULL)) )
{
AfxMessageBox("ADO Init failed");
return ;
}
try
{
ADOConn.CreateInstance("ADODB.Connection");
ADOConn->Open("Provider=SQLOLEDB.1;Data Source=SERVER;Initial Catalog=MY","mysql","mysql",-1);
}
// 捕捉例外
catch(_com_error &e)
{
CString err;
err.Format("%s", (char*)(e.Description()) );
AfxMessageBox(err);
return ;
}
_CommandPtr pIDCommand = NULL;
_ParameterPtr m_pParam = NULL;
HRESULT hr = pIDCommand.CreateInstance(__uuidof(Command));
if(FAILED(hr))
{
AfxMessageBox("创建_CommandPtr对象失败");
return ;
}
//m_pParam.CreateInstance(__uuidof(Parameter));
int intRoyalty = 1;
VARIANT vtRoyalty;
vtRoyalty.vt = VT_I2;
vtRoyalty.iVal = intRoyalty;
m_pParam = pIDCommand->CreateParameter(_bstr_t("Coil_no"),adInteger,adParamInput,sizeof(int),vtRoyalty); //到这里总是拒绝访问异常
pIDCommand->ActiveConnection = ADOConn;
pIDCommand->CommandText = _bstr_t(_T("dbo.Up_Pass_Statistics"));
pIDCommand->CommandType = adCmdStoredProc;
pIDCommand->Parameters->Append(m_pParam);
m_pParam->Value = vtRoyalty;
pIDCommand->Execute(NULL,NULL,adCmdStoredProc);