Главная страница


su.dbms

 
 - SU.DBMS ----------------------------------------------------------------------
 From : Wadim S. Dicke                       2:5020/175.2   13 Nov 2001  13:25:45
 To : All
 Subject : raw OLE DB
 -------------------------------------------------------------------------------- 
 
 Goodluck to you All!
 
 Работаю я с сабжем, заметил маленькую утечку памяти, стал проверять... 
 Выяснилось: везде, где нужно интерфейсы высвобождать, Release() написано, 
 но не везде они реально высвобождаются. А именно, проблема нашлась вот где: 
 
 /***********************  делаем все как нас учили  ***********************/
   IRowset* pRowset;
   IColumnsInfo* pColumnsInfo;
   DBCOLUMNINFO* pDBColumnInfo;
   OLECHAR* pStringsBuffer;
 
   HRESULT hr;
 
   hr = pRowset->QueryInterface(IID_IColumnsInfo, (void **) &pColumnsInfo);
   //все OK, hr == 0
 
   hr = pColumnsInfo->GetColumnInfo(&lNumCols, &pDBColumnInfo,
 &pStringsBuffer);
   //все OK, hr == 0
 
   hr = pColumnsInfo->Release();
   //ooops! hr == 1 :o(
 /***********************      и обламываемся       ***********************/
 
 Соответственно, потом не освобождается и IAccessor. Самое забавное, что если 
 GetColumnInfo(...) не делать, а сразу же, только запросив, попытаться 
 высвободить IColumnsInfo, результат будет тем же.
 
 Кто из работавших с сабжем имеет предположения, что бы это могло значить?
 Прошу не утруждать себя ответами типа "брось эту гадость, перейди на 
 что-нибудь другое".
 
 With a faint smile from beneath a mask,
 Serpent.
 
 --- ifmail v.2.15
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 raw OLE DB   Wadim S. Dicke   13 Nov 2001 13:25:45 
 raw OLE DB   Wadim S. Dicke   14 Nov 2001 08:38:47 
Архивное /su.dbms/3300fc39c676.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional