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

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

Результирующий набор по умолчанию (последовательный доступ, только чтение)

Основанный на версии оптимистический параллелизм требует столбец отметки времени в базовой таблице. Если для таблицы, не содержащей столбца timestamp, запрашивается управление основанным на версии оптимистическим параллелизмом, сервер использует оптимистический параллелизм, основанный на значениях.

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

Если параметр 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)