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


         

В окне Data будет представлено


После вызова процедуры 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, то число полей результирующего множества и их типы должны для каждого множества быть одни и теми же.
      Таким образом, рассмотренные разнообразные способы получения результатов функционирования хранимых процедур придают гибкость процессу разработки приложений баз данных.

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