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