Zachowania kursora

Dotyczy:sql ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics

ODBC wspiera opcje ISO do określania zachowania kursorów poprzez określenie ich przewijania i czułości. Te zachowania określa się poprzez ustawienie opcji SQL_ATTR_CURSOR_SCROLLABLE i SQL_ATTR_CURSOR_SENSITIVITY podczas wywołania do SQLSetStmtAttr. Sterownik ODBC natywnego klienta SQL Server implementuje te opcje, żądając kursorów serwera o następujących cechach.

Ustawienia zachowania kursora Wymagane charakterystyki kursora serwera
SQL_SCROLLABLE i SQL_SENSITIVE Kursor sterowany zestawem klawiszy oraz optymistyczna równocześność oparta na wersjach
SQL_SCROLLABLE i SQL_INSENSITIVE Statyczny kursor i współbieżność tylko do odczytu
SQL_SCROLLABLE i SQL_UNSPECIFIED Statyczny kursor i współbieżność tylko do odczytu
SQL_NONSCROLLABLE i SQL_SENSITIVE Kursor tylko do przodu oraz optymistyczna równolegliwość oparta na wersjach
SQL_NONSCROLLABLE i SQL_INSENSITIVE Domyślny zestaw wyników (tylko do przodu, tylko do odczytu)
SQL_NONSCROLLABLE i SQL_UNSPECIFIED Domyślny zestaw wyników (tylko do przodu, tylko do odczytu)

Optymistyczna równolegliwość oparta na wersjach wymaga kolumny znacznika czasu w tabeli bazowej. Jeśli na tabeli bez kolumny znacznika czasu żądana jest optymistyczna kontrola współbieżności oparta na wersjach.

Przewijanie

Gdy SQL_ATTR_CURSOR_SCROLLABLE jest ustawione na SQL_SCROLLABLE, kursor obsługuje wszystkie różne wartości parametru FetchOrientationw SQLFetchScroll. Gdy SQL_ATTR_CURSOR_SCROLLABLE jest ustawione na SQL_NONSCROLLABLE, kursor obsługuje tylko wartość FetchOrientation SQL_FETCH_NEXT.

Czułość

Gdy SQL_ATTR_CURSOR_SENSITIVITY jest ustawione na SQL_SENSITIVE, kursor odzwierciedla modyfikacje danych dokonane przez obecnego użytkownika lub zatwierdzone przez innych użytkowników. Gdy SQL_ATTR_CURSOR_SENSITIVITY jest ustawione na SQL_INSENSITIVE, kursor nie odzwierciedla modyfikacji danych.