我在线程中创建了一个数据库连接(TADOConnection),然后循环创建、使用TADOQuery,出现内存泄漏(数据库用Oracle 9.0.1)
AnsiString strConnetStringc= "Provider=OraOLEDB.Oracle.1;Password=" + p_strDbPassword + ";User ID=" + p_strDbUser + ";Data Source=" + p_strDbName;
TADOConnection *pADOConn = NULL;
pADOConn = new TADOConnection(NULL);
pADOConn->ConnectionString = strConnetStringc;
pADOConn->Connected = false;
pADOConn->LoginPrompt=false;
pADOConn->Connected = true;
......
while(...)
{
TADOQuery *adoQuery = new TADOQuery(NULL);
adoQuery->Connection = pADOConn;
adoQuery->SQL->Clear();
adoQuery->SQL->Add(strSql);
adoQuery->Open();
adoQuery->Close();
delete adoQuery;
adoQuery = NULL;
}
adoQuery出现内存泄漏,不知是什么原因? 被困扰好几天了,郁闷...
经过一天的努力,
问题解决了 :)
我连的是Oracle 9.0.1,ADO使用的驱动是Oracle提供的Oracle Provider for OLE DB,所以出现这个问题。
我换用 Microsoft OLE DB Provider for Oracle 就好了,内存不再泄漏
TADOQuery内存泄漏
最新推荐文章于 2020-10-20 11:29:07 发布