ADO连接SQL server2008 使用_CommandPtr pCommand的对象时出现无效指针,代码:
void CMy123Dlg::OnCommand()
{
try
{
_ConnectionPtr pConnection=NULL;
pConnection.CreateInstance(_uuidof(Connection));
pConnection->Mode=adModeUnknown;
pConnection->ConnectionTimeout=5;
pConnection->ConnectionString=_T("Data Source=127.0.0.1;Provider=SQLOLEDB.1;Initial Catalog=自行车");
HRESULT hr= pConnection->Open(_T(""), _T("zxf"),_T("1234"), adModeUnknown);
if(FAILED(hr))
{
pConnection->Close();
MessageBox("连接失败了");
return ;
}
//CString ID;
//GetDlgItemText(IDC_ID,ID);
_CommandPtr pCommand=NULL;
pCommand.CreateInstance(_uuidof(pCommand));
pCommand->ActiveConnection=pConnection;
pCommand->CommandText=_T("insert into 类型([ID]) values(?)");
pConnection->CommandTimeout=5;
_variant_t vRecordsAffected;
_ParameterPtr pParam1=pCommand->CreateParameter(_bstr_t("ID"),adBSTR,adParamInput,m_ID.GetLength(),_variant_t(m_ID));
pCommand->Parameters->Append(pParam1);
pCommand->Execute(&vRecordsAffected,NULL,adCmdText);
if(vRecordsAffected.intVal==1)
{
MessageBox("添加成功了");
}
if(pConnection->State)
{
pConnection->Close();
pConnection=NULL;
}
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
}
}