关于 ADO Exception 的问题
_RecordsetPtr pRec;
pRec = NULL;
try
{
pRec.CreateInstance(__uuidof(Recordset));
pRec->Open(_bstr_t(szSQL), gpAdoConnection.GetInterfacePtr(),
adOpenStatic, adLockOptimistic, adCmdText);
;/// PutValue to a certain field,result in an error
pRec->Update();
}
catch(...)
{
if(pRec != NULL)
{
if(pRec->GetState() == adStateOpen)
pRec->Close();//错在这里
pRec=NULL;
}
return -1;
}
if(pRec != NULL)
{
if(pRec->GetState() == adStateOpen)
pRec->Close();//正常退出时正常
pRec=NULL;
return 0;
以上代码为什么会导致错误?当 ADO 发生错误时即使检测到pRec->GetState() == adStateOpen 为什么仍然不能pRec->Close();