100分询问多线程调用ADO的问题
我封装的ADO类ADOConn
class ADOConn
{
public:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
public:
ADOConn(){::CoInitialize(NULL);m_pConnection=NULL;m_pRecordset=NULL;}
virtual ~ADOConn(){::CoUninitialize();}
int DefaultConn();//建立连接m_pConnection;
void ExitConnect(){
if (NULL != m_pRecordset)
if (m_pRecordset->State)
m_pRecordset->Close();
if (NULL != m_pConnection)
if (m_pConnection->State)
m_pConnection->Close();
}
};
我在有一个线程需要时时检测数据库数据,我在线程里用的是下面的代码
while(1)
{
Sleep(1000);
ADOConn adoconn;
adoconn.DefaultConn();
........//一些数据删除,修改,查询的操作.
adoconn.ExitConnect();
}
//上面的代码可以运行一段时间,时间不固定,长时10分,短时3分,就报一个0xc0000005 Asscess violation的错误,