PRB: SQLCancel Instead of SQLFreeStmt Causes a Memory Leak (159571)
The information in this article applies to:
- Microsoft SQL Server 6.0
- Microsoft SQL Server 6.5
- Microsoft Open Database Connectivity 2.5
- Microsoft Visual Basic Enterprise Edition for Windows 4.0
This article was previously published under Q159571 SYMPTOMS
If an ODBC application uses SQLCancel instead of SQLFreeStmt to close an
ODBC cursor after some data has been processed, the ODBC cursor library
version 2.5 may generate a memory leak.
A Visual Basic 4.0 application may encounter this problem if the
application uses the Requery method of an RDO Resultset. The ReQuery method
internally invokes SQLCancel instead of SQLFreeStmt and SQL_CLOSE to close
the statement handle, before binding the parameters and results.
CAUSE
An ODBC application should only call SQLCancel when dealing with
asynchronous processing. ODBC applications should always use SQLFreeStmt
and SQL_CLOSE rather than SQLCancel to close the statement handle.
For more information on how to use SQLCancel, please refer to Microsoft
ODBC 2.0 Programmer's Reference and SDK Guide.
MORE INFORMATION
A Visual Basic application can call the Close and OpenRecordset methods
instead of ReQuery. The Close method invokes SQLFreeStmt and SQL_CLOSE to
close the statement handle.
Modification Type: | Major | Last Reviewed: | 6/30/2004 |
---|
Keywords: | kbprb KB159571 |
---|
|