Skip to content

Latest commit

 

History

History
40 lines (29 loc) · 3.59 KB

appendix-f-odbc-cursor-library.md

File metadata and controls

40 lines (29 loc) · 3.59 KB
title description author ms.author ms.date ms.service ms.subservice ms.topic helpviewer_keywords
Appendix F: ODBC Cursor Library
Appendix F: ODBC Cursor Library
David-Engel
davidengel
01/19/2017
sql
connectivity
reference
ODBC cursor library [ODBC], about cursor library
ODBC cursor library [ODBC]
cursor library [ODBC], about cursor library
cursor library [ODBC]

Appendix F: ODBC Cursor Library

Important

This feature will be removed in a future version of Windows. Avoid using this feature in new development work and plan to modify applications that currently use this feature. Microsoft recommends using the driver's cursor functionality.

The ODBC cursor library (Odbccr32.dll) supports block scrollable cursors for any driver that complies with the Level 1 API conformance level and can be redistributed by developers with their applications or drivers. The cursor library also supports positioned update and delete statements for result sets generated by SELECT statements. Although it supports only static and forward-only cursors, the cursor library satisfies the needs of many applications. Furthermore, it can provide good performance, especially for small-sized to medium-sized result sets, and for applications that do not have good cursor support.

The cursor library is a dynamic-link library (DLL) that resides between the Driver Manager and the driver. When an application calls a function, the Driver Manager calls the function in the cursor library, which either executes the function or calls it in the specified driver. For a given connection, an application specifies whether the cursor library is always used, used if the driver does not support scrollable cursors, or never used.

The cursor library appears as a driver to the Driver Manager. If the cursor library resides between the Driver Manager and an ODBC 2.x driver, the cursor library appears as an ODBC 2.x driver. If the cursor library resides between the Driver Manager and an ODBC 3.x driver, the cursor library appears as an ODBC 3.x driver. The behavior exhibited by the cursor library depends upon the version of the driver it is working with, with the exception of binding offsets, which is supported for both ODBC 2.x and ODBC 3.x drivers.

To implement block cursors in SQLFetch and SQLFetchScroll, the cursor library repeatedly calls SQLFetch in the driver. To implement scrolling, it caches the data it has retrieved in memory and in disk files. When an application requests a new rowset, the cursor library retrieves it as necessary from the driver or the cache.

To implement positioned update and delete statements, the cursor library constructs an UPDATE or DELETE statement with a WHERE clause that specifies the cached value of each bound column in the row. When it executes a positioned update statement, the cursor library updates its cache from the values in the rowset buffers.

For more information about the ODBC cursor library, see the following sections of this appendix: