아래소스는 쓰레드 Execute 안에서 실행되는 ADO모듈입니다. TADOQuery를 Open()했을때 작업관리자에서 메모리를 확인해보니 사용 메모리가 증가합니다. 그런데 TADOQuery를 반환했음에도 증가 되었던 메모리가 줄어들지 않아
문제가 되고 있습니다. 소스를 보시구 어디가 문제 인지 짚어수시면 안될까요?
/*
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
*/
void __fastcall TDBThread::fnLoadMaster()//쓰레드 Excute 안에 실행 됨
{
UnicodeString sSql;
TADOQuery *pQuery = new TADOQuery(NULL);
pQuery->ParamCheck = false;
pQuery->Connection = pADOConn;
//셀렉트 쿼리
sSql = "SELECT * FROM SOCKET_COMM \r\n";
pQuery->Close();
pQuery->SQL->Clear();
pQuery->SQL->Text = sSql;
CoInitialize(NULL); //COM 객체 초기화
pQuery->Open(); //이부분에서 메모리 증가
try{
for(;!pQuery->Eof; pQuery->Next())
{
pField = pQuery->FieldByName("Opkind");
pField = pQuery->FieldByName("IPAddress");
pField = pQuery->FieldByName("Port");
}
if(pQuery->IsEmpty())
{
//fnSaveMaster(sLog);
}
}catch(Exception &E)
{
}
//pQuery->Close();
delete pQuery; //****이부분에서 pQuery->Open() 시 증가된 메모리가 소멸 되지 않음
}
|