Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.misc -> Memory leak ADO-MSDAORA
ADO Memory leak.
SELECT --> SELECT DISTINCT A.id, B.type
FROM A,B
WHERE A.id = '19990610-0007'
if SELECT is a simple query on one table the program does not leak.
SELECT --> SELECT id
FROM A
WHERE A.id = '19990610-0007'
//////////////////////////////////////////////////////////////////////#import <msado15.dll> rename ("EOF", "adoEOF") void CTestAdoLeakDlg::OnGo()
ADODB::_ConnectionPtr cn;
HRESULT hr = cn.CreateInstance (__uuidof (ADODB::Connection));
cn->Open (Connect, "", "", -1);
CString SELECT;
SELECT.Format("SELECT DISTINCT A.id, B.type FROM A,B WHERE A.id =
'19990610-0007'");
);
_bstr_t Source(SELECT);
do{
ADODB::_RecordsetPtr rst = NULL;
hr = rst.CreateInstance(__uuidof(ADODB::Recordset));
rst->CursorLocation = ADODB::adUseServer; rst->CursorType = ADODB::adOpenForwardOnly; rst->LockType = ADODB::adLockReadOnly; rst->CacheSize = 1;
hr = rst->Open(Source, cn.GetInterfacePtr(),
ADODB::adOpenDynamic,ADODB::adLockOptimistic,-1);
do{
hr = rst->MoveNext();
}while(!rst->adoEOF);
hr = rst->Close();
hr = rst->Release(); // Leaks
}while(true);
::CoUninitialize();
}
Thank you for any solution you can provide Charles. Received on Thu Jul 08 1999 - 06:47:16 CDT
![]() |
![]() |