Delphi 3 и создание приложений баз данных


28.3.7. Оператор SUSPEND


Оператор SUSPEND передает в вызывающее приложение значения результирующих параметров (перечисленных после слова RETURNS в описании функции), имеющие место на момент выполнения SUSPEND. После этого выполнение хранимой процедуры приостанавливается. Когда от оператора SELECT вызывающего приложения приходит запрос на следующее значение выходных параметров, выполнение хранимой процедуры возобновляется.

Пример.

Процедура POK_LIST выдает всех покупателей, у которых имеются покупки данного товара, в количестве, превосходящем средний размер покупки по данному товару. В случае, если наименование покупателя - пустое, вместо имени покупателя выводится "Покупатель не указан".

CREATE PROCEDURE POK_LIST (IN_TOVAR VARCHAR(20))

RETURNS(РОК VARCHARf20)) AS

DECLARE VARIABLE AVG_KOLVO INTEGER;

BEGIN

SELECT AVG(KOLVO) FROM RASHOD WHERE TOVAR = :IN_TOVAR INTO : AVG_KOLVO;

FOR SELECT POKUP FROM RASHOD WHERE KOLVO > : AVG_KOLVO INTO : РОК

DO

BEGIN

IF (:POK IS NULL) THEN РОК = "Покупатель не указан";

SUSPEND;

END

END




Начало  Назад  Вперед



Книжный магазин