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

         

Таблица 23. Результаты выполнения процедуры Get_list_absent(80) - часть 2


После вызова процедуры For_RESUME в утилите ISQL:

  • В окне Data будет представлено результирующее множество, сформированное в результате выполнения в процедуре For_RESUME оператора CALL Get_list_absent(80).
  • В окне Statistics будет выдано сообщение "... Procedure is executing.Use RESUME to continue.", означающее, что происходит выполнение процедуры приостановлено и для продолжения ее выполнения следует выполнить оператор RESUME.
  • Выполнение процедуры будет приостановлено. Об этом свидетельствует сообщение в окне Statistics . Кроме того в окне локального сервера () или окне Messages удаленного сервера () в данной программе при помощи первого оператора MESSAGE выводится только одно сообщение "_______Parameter =80". Сообщения , формируемые тремя другим операторами MESSAGE пока не выводятся, потому что выполнение процедуры For_RESUME приостановлено.
  • После выполнения оператора RESUME функционирование процедуры For_RESUME будет продолжено до тех пока не будет сформировано следующее результирующее множество. В данном случае это сделает оператор SELECT.

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

    После выполнения оператора SELECT происходит следующее:

  • В окне Data будет представлено результирующее множество, сформированное оператором SELECT.
  • В окне Statistics опять будет предложено выполнить оператор RESUME для продолжения функционирования процедуры.
  • Об остановке работы процедуры свидетельствует сообщение в окне Statistics. Кроме того в окне сервера появится сообщение "____ Parameter =60". Остановка процедуры произойдет, несмотря на то, что в данном случае результирующее множество будет пустое.
  • После выполнения оператора RESUME функционирование процедуры For_RESUME будет продолжено до следующего результирующее множество.

    После его анализа выполним последний третий раз оператор RESUME. В результате этого получим:

  • Окне Data будет пустым.
  • В окне Statistics будет выдано сообщение о завершении процедуры "Procedure completed.".
  • В окне сервера появится сообщение "****FINISH". Его формирует последний оператор процедуры For_RESUME.
    • ПРИМЕЧАНИЕ

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

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




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