Microsoft distributes Microsoft SQL Server 2008 R2 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release.
Considering the following scenario:
You install SQL Server Native Client 10.5 on a computer.
You run an application that uses the SQL Server Native Client ODBC driver to connect to an instance of SQL Server.
A prepared statement is executed in the application multiple times. Note When the statement is executed, the sp_prepare and the sp_prepexec stored procedures are used.
You use the SQLFreeStmt ODBC API function to release the handles of the prepared statements.
In this scenario, a memory leak may occur in the instance of SQL Server.
This issue occurs because the SQLFreeStmt ODBC API function does not release the handles of the prepared statements.
The fix for this issue was first released in Cumulative Update 5. For more information about how to obtain this cumulative update package for SQL Server 2008 R2, click the following article number to view the article in the Microsoft Knowledge Base:
2438347 Cumulative Update package 5 for SQL Server 2008 R2
Note Because the builds are cumulative, each new fix release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2008 R2 fix release. We recommend that you consider applying the most recent fix release that contains this hotfix. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
981356 The SQL Server 2008 R2 builds that were released after SQL Server 2008 R2 was released
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
The SQL Server Native Client ODBC driver supports all defined values for the Option argument in the SQLFreeStmt ODBC API function. However, it is best not to use SQLFreeStmt in ODBC 3.0 or in later versions of ODBC.
The SQLCloseCursor, SQLBindParameter, SQLBindCol, SQLSetDescField, and SQLFreeHandle ODBC API functions replace or duplicate the function of SQLFreeStmt. Therefore, we recommend that you use these functions instead of the SQLFreeStmt function.
For more information, visit the following Microsoft websites: