sp_cursoroption (Transact-SQL)

Задает параметры курсора или возвращает сведения о курсоре, созданном хранимой процедурой sp_cursoropen. Процедура sp_cursoroption вызывается при указании ID = 8 в пакете потока табличных данных (TDS).

Применимо для следующих объектов: SQL Server (начиная с SQL Server 2008 до текущей версии).

Значок ссылки на раздел Cинтаксические обозначения в Transact-SQL

Синтаксис

sp_cursoroption cursor, code, value

Аргументы

  • cursor
    Это значение дескриптора, формируемого SQL Server и возвращаемого хранимой процедурой sp_cursoropen. Параметр cursor требует входного значения типа int.

  • code
    Служит для указания различных коэффициентов возвращаемых значений курсора. code требует одного из следующих входных значений типа int.

    Значение

    Название

    Описание

    0x0001

    TEXTPTR_ONLY

    Возвращает не фактические данные, а текстовый указатель для определенных назначенных столбцов типа text или image.

    TEXTPTR_ONLY позволяет использовать текстовые указатели как дескрипторы объектов BLOB, которые позже можно выборочно получить или обновить с помощью Transact-SQL или DBLIB (например, инструкции Transact-SQL READTEXT или DBLIB DBWRITETEXT).

    Если присвоено значение «0», то все столбцы типа text или image из выбранного списка будут возвращать вместо данных текстовые указатели.

    0x0002

    CURSOR_NAME

    Назначает курсору имя, указанное в параметре value. Это в свою очередь позволяет интерфейсу ODBC применять позиционированные инструкции Transact-SQL UPDATE и DELETE к курсорам, открываемым процедурой sp_cursoropen.

    Строка может иметь любой символьный тип данных или UNICODE.

    Поскольку по умолчанию позиционируемые инструкции Transact-SQL UPDATE и DELETE работают с первой строкой в крупном курсоре, то перед выдачей позиционированной инструкции UPDATE или DELETE необходимо позиционировать курсор с помощью sp_cursor SETPOSITION.

    0x0003

    TEXTDATA

    Возвращает фактические данные, а не текстовый указатель для определенных столбцов типа text или image при последующей выборке (т. е. отменяет действие TEXTPTR_ONLY).

    Если для определенного столбца включен режим TEXTDATA, то выполняется повторная выборка или обновление строки, и после этого можно опять присвоить значение TEXTPTR_ONLY. Как и в случае с TEXTPTR_ONLY, целочисленный параметр значения задает номер столбца. Нулевое значение возвращает все текстовые столбцы или столбцы изображений.

    0x0004

    SCROLLOPT

    Параметр прокрутки. Дополнительные сведения см. ниже в разделе «Значения кодов возврата».

    0x0005

    CCOPT

    Параметр управления параллелизмом. Дополнительные сведения см. ниже в разделе «Значения кодов возврата».

    0x0006

    ROWCOUNT

    Количество строк, находящихся в результирующем наборе.

    Примечание

    Если используется асинхронное заполнение, то с момента возвращения значений процедурой sp_cursoropen параметр ROWCOUNT мог измениться.Значение -1 возвращается в том случае, если число строк неизвестно.

    • value
      Указывает значение, возвращенное параметром code. Параметр value является обязательным и требует входного значения code, равного 0x0001, 0x0002 или 0x0003.

      Примечание

      Значение code, равное 2, соответствует строковому типу данных.Любое другое значение code, введенное или возвращенное value, является целочисленным.

    Значения кода возврата

    Параметр value может возвращать одно из следующих значений code.

    Возвращаемое значение

    Описание

    0x0004

    SCROLLOPT

    0X0005

    CCOPT

    0X0006

    ROWCOUNT

    Параметр value возвращает одно из следующих значений SCROLLOPT.

    Возвращаемое значение

    Описание

    0x0001

    KEYSET

    0x0002

    DYNAMIC

    0x0004

    FORWARD_ONLY

    0x0008

    STATIC

    Параметр value возвращает одно из следующих значений CCOPT.

    Возвращаемое значение

    Описание

    0x0001

    READ_ONLY

    0x0002

    SCROLL_LOCKS

    0x0004 или 0x0008

    OPTIMISTIC

    См. также

    Справочник

    Системные хранимые процедуры (Transact-SQL)

    sp_cursor (Transact-SQL)

    sp_cursoropen (Transact-SQL)