(注意:已经略去无关代码)
初始化:
CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
//_RecordsetPtr pRst(__uuidof(Recordset));
pConn->ConnectionString="Provider=SQLOLEDB.1;Password=xxx;Persist Security Info=True; User ID=sa;Initial Catalog=ArticleCollection";
pConn->Open("","","",adConnectUnspecified);
调用
_variant_t RecordsAffected;
pConn->Execute(sqlInsert,&RecordsAffected,-1);
释放:
pConn->Close();
pConn->Release();
CoUninitialize();
异常出现在文件 comip.h中红色位置的函数体内
private:
// The Interface.
//
Interface* m_pInterface;
// Releases only if the interface is not null.
// The interface is not set to NULL.
//
void _Release() throw()
{
if (m_pInterface != NULL) {
m_pInterface->Release();
}
}
好老的代码呀,勾起我对C++的回忆。
MM,我实在不想去试这样的代码了,但你可以尝试一下使用
pConn.Release();而不是 pConn->Release();
另外你也可以不调用 pConn->Release();
希望能解决你的问题。