Cursorgedrag

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

ODBC ondersteunt de ISO-opties om het gedrag van cursors te specificeren door hun scrollbaarheid en gevoeligheid te specificeren. Deze gedragingen worden gespecificeerd door de SQL_ATTR_CURSOR_SCROLLABLE en SQL_ATTR_CURSOR_SENSITIVITY opties in te stellen bij een aanroep naar SQLSetStmtAttr. De SQL Server Native Client ODBC-driver implementeert deze opties door servercursors met de volgende kenmerken aan te vragen.

Instellingen voor cursorgedrag Servercursorkenmerken gevraagd
SQL_SCROLLABLE en SQL_SENSITIVE Keyset-gestuurde cursor en versie-based optimistic gelijktijdigheid
SQL_SCROLLABLE en SQL_INSENSITIVE Statische cursor en alleen-lezen gelijktijdigheid
SQL_SCROLLABLE en SQL_UNSPECIFIED Statische cursor en alleen-lezen gelijktijdigheid
SQL_NONSCROLLABLE en SQL_SENSITIVE Forward-only cursor en versie-gebaseerde optimistische gelijktijdigheid
SQL_NONSCROLLABLE en SQL_INSENSITIVE Standaard resultaatset (alleen vooruitgestuurd, alleen-lezen)
SQL_NONSCROLLABLE en SQL_UNSPECIFIED Standaard resultaatset (alleen vooruitgestuurd, alleen-lezen)

Versie-gebaseerde optimistische gelijktijdigheid vereist een tijdstempelkolom in de onderliggende tabel. Als versie-gebaseerde optimistische gelijktijdigheid wordt aangevraagd op een tabel zonder tijdstempelkolom , gebruikt de server waardegebaseerde optimistische gelijktijdigheid.

Scrollbaarheid

Wanneer SQL_ATTR_CURSOR_SCROLLABLE is ingesteld op SQL_SCROLLABLE, ondersteunt de cursor alle verschillende waarden voor de FetchOrientation-parameter van SQLFetchScroll. Wanneer SQL_ATTR_CURSOR_SCROLLABLE op SQL_NONSCROLLABLE is ingesteld, ondersteunt de cursor alleen een FetchOrientation-waarde van SQL_FETCH_NEXT.

Sensitivity

Wanneer SQL_ATTR_CURSOR_SENSITIVITY op SQL_SENSITIVE wordt gezet, weerspiegelt de cursor gegevenswijzigingen die door de huidige gebruiker zijn aangebracht of door andere gebruikers zijn uitgevoerd. Wanneer SQL_ATTR_CURSOR_SENSITIVITY op SQL_INSENSITIVE is ingesteld, weerspiegelt de cursor geen datawijzigingen.