Язык программирования баз данных Informix-4GL


Обработка многострочных запросов с использованием аппарата курсоров


Обработка многострочного запроса осуществляется в два этапа. Сначала программа дает старт запросу, после которого не возвращаются никакие данные. Затем программа запрашивает строки данных по одной на каждое требование. Эти операции выполняются с помощью специального объекта данных, называемого курсором. Курсор является структурой данных, представляющей текущее состояние запроса. Основная последовательность программных операций с курсором выглядит следующим образом:

  1. Программа объявляет курсор и ассоциированный с ним оператор Select. Это приводит лишь к выделению памяти для хранения курсора.
  2. Программа открывает этот курсор, что приводит к началу выполнения ассоциированного оператора Select.
  3. Программа считывает очередную строку данных в главные переменные и обрабатывает их.
  4. Программа закрывает курсор после прочтения последней строки.

Эти операции выполняются с помощью операторов SQL Declare, Open, Fetch, Close, Foreach.

Множество строк, возвращаемое предложением Select, называется активным множеством. В любой момент времени 4GL-программа может работать только с одной строкой - это текущая строка, на которую указывает курсор. Курсор может находиться в одном из двух состояний: открытом и закрытом. Когда курсор открыт, он связан с открытым множеством и может указывать либо на текущую строку, либо между строк, либо перед первой строкой, либо после последней строки. Если курсор находится в закрытом состоянии, он больше не связан с активным множеством, хотя и остается связанным с оператором Select.

Объявление курсора

В процессе использования курсор может задаваться в двух режимах: последовательном и скроллирующим. Последовательный курсор позволяет просматривать активное множество только в последовательном порядке, а также может использоваться при модификации и удалении строк из активного множества. Скроллирующий курсор позволяет просматривать строки из активного множества в произвольном порядке.

Оператор Declare объявляет курсор, задавая его имя, специфицируя его использование и связывая с курсором оператор Select.


Начало  Назад  Вперед



Книжный магазин