Работа с базами данных

       

РАБОТА С КУРСОРОМ


ЛАБОРАТОРНАЯ РАБОТА 5

РАБОТА С КУРСОРОМ

Цель работы

Приобретение практических навыков работы с курсором в программах на языке ESQL/C.

Содержание работы и методические указания

к ее выполнению



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

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

  • объявление курсора, выполняемое оператором Declare;
  • открытие курсора, выполняемое оператором Open;
  • выборка по курсору очередной строки запроса в главные переменные, выполняемая оператором Fetch;
  • закрытие курсора, выполняемое оператором Close.
  • Последовательность выполнения лабораторной работы

    1. Изучить синтаксис и правила использования операторов Declare, Open, Fetch, Close (см. Приложение 2), а также особенности работы с последовательным и скроллирующим курсором.

    2. Разработать и отладить набор ESQL/С-программ, решающих задачи из соответствующего варианта заданий. Результатом работы программ является набор строк, которые подлежат выводу на экран с соответствующими пояснительными заголовками.

    3. Разработать и отладить набор ESQL/С-программ, решающих задачи из соответствующего варианта заданий аналогично заданию из п. 2 с той разницей, что выводить результаты запроса необходимо в обратном порядке следования строк. Указанное требование предполагает использование скроллирующего курсора.

    Как и в предыдущей лабораторной работе, общими требованиями при разработке программ являются:

  • беспечение необходимой обработки ошибок;
  • использование аппарата транзакций;

  • вывод сообщений обо всех шагах выполнения программы, в том числе и о возможных ошибках;


  • программа должна быть достаточно документирована.




  • Варианты заданий



    Вариант 1.

    1. Для каждой поставляемой для некоторого изделия детали выдать ее номер, номер изделия и соответствующее общее количество деталей.

    2. Получить номера изделий, для которых детали полностью поставляет поставщик S1.

    3. Выдать номера и фамилии поставщиков, поставляющих детали для какого-либо изделия с деталью P1 в количестве, большем, чем средний объем поставок детали P1 для этого изделия.

    Вариант 2.

    1. Выдать общее количество деталей P1, поставляемых поставщиком S1.

    2. Получить номера изделий, использующих только детали, поставляемые поставщиком S1.

    3. Выдать номера деталей, поставляемых каким-либо поставщиком из Лондона, для изделия, изготавливаемого также в Лондоне.

    Вариант 3.

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

    2. Получить общее число изделий, для которых поставляет детали поставщик S1.

    3. Выдать номера изделий, детали для которых поставляет каждый поставщик, поставляющий какую-либо красную деталь.

    Вариант 4.

    1. Выдать полный список деталей для всех изделий, изготавливаемых в Лондоне.

    2. Получить номера деталей, поставляемых каким-либо поставщиком из Лондона.

    3. Выдать номера деталей, поставляемых для всех изделий из Лондона.

    Вариант 5.

    1. Выдать список всех поставок, в которых количество деталей находится в диапазоне от 300 до 750 включительно.

    2. Получить номера изделий, использующих по крайней мере одну деталь, поставляемую поставщиком S1.

    3. Выдать номера и названия деталей, поставляемых для какого-либо изделия в Лондоне.

    Вариант 6.

    1. Выдать номера и названия изделий, для которых город является первым в алфавитном списке таких городов.

    2. Получить цвета деталей, поставляемых поставщиком S1.

    3. Выдать номера и фамилии поставщиков, поставляющих деталь Р1 для какого-либо изделия в количестве, большем среднего объема поставок детали Р1 для этого изделия.



    Вариант 7.

    1. Выдать названия изделий, для которых поставляются детали поставщиком S1.

    2. Получить номера деталей, поставляемых для какого-либо изделия поставщиком, находящимся в том же городе, где изготавливается это изделие.

    3. Выдать номера изделий, для которых средний объем поставки деталей P1 больше наибольшего объема поставки любой детали для изделия J1.



    Контрольные вопросы



  • Что такое курсор? В чем отличие последовательного и скроллирующего курсора по описанию и по использованию?


  • Каково назначение и синтаксис оператора Declare?


  • Каково назначение и синтаксис оператора Open?


  • Каково назначение и синтаксис оператора Fetch?


  • Каково назначение и синтаксис оператора Close?


  • По какой из команд сервер выделяет память под курсор?


  • По какой из команд сервер начинает поиск строк запроса?


  • Чем заканчивается работа оператора Open?


  • Чем заканчивается работа оператора Fetch?


  • Характеризуйте состав и назначение спецификаций, связанных с перемещением скроллирующего курсора.


  • Что такое уровень изоляции? Какой уровень изоляции может использоваться при работе с последовательным и скроллирующим курсором?



  • Содержание раздела