Knowledge Base

PRB: Memory Leak When Traversing OLE DB Rowset

Article ID: 190960

Article Last Modified on 8/12/2005


APPLIES TO


This article was previously published under Q190960

SYMPTOMS

When you use the OLE DB Consumer template classes, columns that are mapped to BSTRs or interfaces leak memory (for example, IUnknown or ISequentialStream). The leak occurs after each move through the rowset.

CAUSE

The OLE DB Consumer templates do not free BSTRs, VARIANTs, interfaces, or chapters that are retrieved after moving to a record.

RESOLUTION

You must explicitly call CAccessorRowset::FreeRecordMemory() to free the BSTRs, VARIANTs, interfaces, or chapters allocated for each record. Call FreeRecordMemory() before moving to the next record.

STATUS

This behavior is by design.

REFERENCES

Visual C++ version 6.0: CAccessorRowset::FreeRecordMemory();

Keywords: kbtemplate kbprb KB190960