Разработка приложений баз данных для СУБД Sybase SQL Anywhere


         

Результаты выполнения процедуры Get_list_absent(80)


AuthorTitle_bookCity_pub-lishPublisherYear_pub-lish

Гмурман В.Е.Теория вероятностей и математическая статистика.Учебное пособие для студентов ВТУЗовМоскваВысшая школа1972
Гмурман В.Е.Руководство к решению задач по теории вероятностей и математической статистике.Учебное пошкола пособие для студентов ВТУЗовМоскваВысшая школа1979
Дектярев Ю.И.Методы оптимизацииМоскваСоветское радио1980
Габасов Р.Методы оптимизацииМинскБГУ1981

При выполнении процедуры, формирующей результирующее множество, создается временная таблица - курсор (CURSOR). В курсор записывается результирующее множество. В дальнейшем пользователь может обрабатывать данные курсора по-своему усмотрению. Это будет обсуждаться в следующем п.5.3.

    ПРИМЕЧАНИЕ

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

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

    Допустим, что процедура приостановила свое функционирование после формирования результирующего множества, и при этом не применялся оператор OPEN. Тогда процедура будет находиться в "зависшем" состоянии на сервере до тех пор, пока не будет выполнен оператор RESUME. Данный оператор закрывает курсор и продолжает работу процедуру до ее завершения или до формирования следующего результирующего множества.

    Исходя из этого, следует отметить, что выполнение процедуры Get_list_absent не завершено. Она все еще находится в "зависшем" состоянии на сервере. Для ее завершения выполните оператор RESUME.

    Покажем использование оператора RESUME на примере процедуры For_RESUME:

    // Процедура, использующая несколько // результирующих множеств CREATE PROCEDURE For_RESUME () /* Демонстрация оператора RESUME. При каждом вызове процедуры Get_list_absent формируется ре- зультирующее множество и процедура For_RESUME приостанавливает свою работу. Требуется выполнить оператор RESUME для продолжения работы. Таким образом для завершения процедуры For_RESUME необходимо выполнить три оператора RESUME */ BEGIN MESSAGE '_______Parameter =80'; CALL Get_list_absent (80); /*остановка до выполнения оператора RESUME */ MESSAGE '____ Parameter =60'; SELECT B.Author, B.Title_book, B.City_publish, B.Publisher, B.Year_publish FROM Stepanov.Books B WHERE B.Code_book = 60; /*остановка до выполнения оператора RESUME */ MESSAGE '_ Parameter =40'; CALL Get_list_absent (40); /*остановка до выполнения оператора RESUME */ MESSAGE '****FINISH'; END //завершение работы процедуры



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