Поделиться через


Режимы работы курсоров

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

ODBC поддерживает параметры ISO, предназначенные для указания поведения курсоров, задавая их прокручиваемость и чувствительность. Эти действия задаются путем задания параметров SQL_ATTR_CURSOR_SCROLLABLE и SQL_ATTR_CURSOR_SENSITIVITY для вызова SQLSetStmtAttr. Драйвер ODBC собственного клиента SQL Server реализует эти параметры, запрашивая курсоры сервера со следующими характеристиками.

Параметры режима работы курсоров Запрошенные характеристики серверного курсора
SQL_SCROLLABLE и SQL_SENSITIVE Курсор, управляемый набором ключей, и основанный на версии оптимистический параллелизм
SQL_SCROLLABLE и SQL_INSENSITIVE Статический курсор и параллелизм в режиме «только чтение»
SQL_SCROLLABLE и SQL_UNSPECIFIED Статический курсор и параллелизм в режиме «только чтение»
SQL_NONSCROLLABLE и SQL_SENSITIVE Однопроходный курсор и основанный на версии оптимистический параллелизм
SQL_NONSCROLLABLE и SQL_INSENSITIVE Результирующий набор по умолчанию (последовательный доступ, только чтение)
SQL_NONSCROLLABLE и SQL_UNSPECIFIED Результирующий набор по умолчанию (последовательный доступ, только чтение)

Для оптимистического параллелизма на основе версий требуется столбец метки времени в базовой таблице. Если управление оптимистическим параллелизмом на основе версий запрашивается в таблице, которая не имеет столбца метки времени , сервер использует оптимистическое параллелизм на основе значений.

Прокручиваемость

Если SQL_ATTR_CURSOR_SCROLLABLE задано значение SQL_SCROLLABLE, курсор поддерживает все различные значения для параметра FetchOrientation SQLFetchScroll. Если SQL_ATTR_CURSOR_SCROLLABLE задано значение SQL_NONSCROLLABLE, курсор поддерживает только значение FetchOrientation SQL_FETCH_NEXT.

Конфиденциальность

Если параметр SQL_ATTR_CURSOR_SENSITIVITY имеет значение SQL_SENSITIVE, курсор отражает изменения данных, произведенные текущим пользователем или зафиксированные другими пользователями. Если параметр SQL_ATTR_CURSOR_SENSITIVITY имеет значение SQL_INSENSITIVE, курсор не отражает изменения данных.

См. также

Использование свойств курсоров (ODBC)Cursor