Главная страница
Случайная страница
Разделы сайта
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Мониторинг курсоров
Для контроля за состоянием курсора в T-SQL имеются две глобальные переменные @@CURSOR_ROWS и @@FETCH_STATUS и функция CURSOR_STATUS. Переменная @@CURSOR_ROWS содержит количество строк во множестве последнего открытого курсора и другую информацию:
Значение @@CURSOR_ROWS
| Описание
| n
| Количество строк в курсоре равно n.
| -1
| Курсор — динамический, количество строк может варьироваться
|
| Либо курсор не имеет строк, либо он закрыт.
| -n
| Количество строк в курсоре равно n, курсор заполнен не полностью.
| Переменная @@FETCH_STATUS содержит информацию о выполнении последнего оператора FETCH:
Значение @@FETCH_STATUS
| Описание
|
| Оператор FETCHвыполнен успешно.
| -1
| Оператор FETCHвыполнен не успешно.
| -2
| Строка для извлечения отсутствует.
| Функция CURSOR_STATUS имеет следующий синтаксис:
СИНТАКСИС
CURSOR_STATUS( { ' local ', 'cursor_name ' } | { ' global ', 'cursor_name ' } | { ' variable ', 'cursor_variable ' })
Здесь 'local' ('global') определяет константу, которая указывает, что источник курсора — локальное (глобальное) имя курсора; 'cursor_name' — идентификатор курсора; 'cursor_variable' — идентификатор курсорной переменной; 'variable'— определяет константу, которая указывает, что источник курсора — локальная переменная.
Возвращаемые значения функцией CURSOR_STATUS представлены в следующей таблице:
Возвращаемое значение
| Описание для 'cursor_name'
| Описание для 'cursor_variable'
|
| Результирующий набор содержит, по крайней мере, одну строку и: для insensitive- и keyset-курсоров результирующий набор содержит, по крайней мере, одну строку; для dynamic-курсоров результирующий набор может иметь 0, 1 или более строк.
| Назначенный этой переменной курсор открыт и: для insensitive- и keyset-курсоров результирующий набор содержит, по крайней мере, одну строку; для dynamic-курсоров результирующий набор может иметь 0, 1 или более строк.
|
| Результирующий набор курсора пуст. Динамический курсор никогда не возвращает это значение.
| Назначенный этой переменной курсор открыт, но результирующий набор пуст. Динамический курсор никогда не возвращает это значение.
| -1
| Курсор закрыт.
| Курсор, назначенный этой переменной, закрыт.
| -2
| Не применяется.
| Возможные случаи: этой OUTPUT-переменной не назначался курсор (предыдущим вызовом процедуры); курсор OUTPUT-переменной назначался предыдущим вызовом процедуры, но был закрыт по завершении процедуры; переменной не назначен какой-либо курсор.
| -3
| Курсор с таким именем не существует.
| Курсорная переменная с таким именем не существует или (если существует) ей не назначен курсор.
|
|