Ключевое слово SCROLL определяет, что
Ключевое слово SCROLL определяет, что допустимы любые режимы перемещения по курсору (FIRST. LAST, PRIOR. NEXT, RELATIVE, ABSOLUTE) в операторе FETCH.
Если не указано ключевое слово SCROLL, то считается доступной только стандартное перемещение вперед: спецификация NEXT в операторе FETCH.
Если указана спецификация READ ONLY (только для чтения), то изменения и обновления исходных таблиц не будут выполняться с использованием данного курсора. Курсор с данной спецификацией может быть самым быстрым в обработке, однако если вы не укажите специально спецификацию READ ONLY, то СУБД будет считать, что вы допускаете операции модификации с базовыми таблицами, и в этом случае для обеспечения целостности БД СУБД будет гораздо медленнее обрабатывать ваши операции с курсором.
При использовании параметра UPDATE [OF [,...]] мы задаем перечень столбцов, в которых допустимы изменения в процессе нашей работы с курсором. Такое ограничение упростит и ускорит работу СУБД. Если этот параметр не указан, то предполагается, что допустимы изменения всех столбцов курсора.
Вернемся к нашему примеру. Если мы преследуем цель мгновенного слепка БД, дающего сведения о должниках, то применим все параметры, позволяющие ускорить работу с нашим курсором. Тогда оператор описания курсора будет выглядеть следующим образом:
DECLARE Debtor_reader_cursor INSENSITIVE CURSOR
FOR
SELECT READERS.FIRSTJAME, READERS. LAST JAME, READERS.ADRES,
READERS.HOME_PHON, READERS.WORK_PHON. BOOKS.TITLE
FROM READERS,BOOKS.EXEMPLAR
WHERE READERS.READER_ID = EXEMPLAR.READER_ID AND
BOOKS.ISBN = EXEMPLARE.ISBN AND
EXEMPLAR.DATA_OUT > Getdate( )
ORDER BY READERS. FIRST_NAME
FOR READ ONLY
При описании курсора нет ограничений на вид оператора SELECT, который используется для создания базового набора строк, связанного с курсором. В
254
операторе SELECT могут использоваться группировки и встроенные подзапросы и вычисляемые поля.
255
253 :: 254 :: 255 :: Содержание
Содержание Назад Вперед