Базы данных - модели, разработка, реализация



         

Оператор определения курсора - часть 2


Ключевое слово 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 :: Содержание




    Содержание  Назад  Вперед