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



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


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

  • Программа объявляет курсор и ассоциированный с ним оператор Select. Это приводит лишь к выделению памяти для хранения курсора.
  • Программа открывает этот курсор, что приводит к началу выполнения ассоциированного оператора Select.
  • Программа считывает очередную строку данных в главные переменные и обрабатывает их.
  • Программа закрывает курсор после прочтения последней строки.
  • Эти операции выполняются с помощью операторов SQL Declare, Open, Fetch, Close, Foreach.

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

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

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

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


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