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

Оператор EXECUTE PROCEDURE


Оператор

EXECUTE PROCEDURE имя [параметр (, параметр...]];

[RETURNING_VALUES параметр [, параметр...]];

Выполняет другую хранимую процедуру из тела данной хранимой процедуры. При этом после слова PROCEDURE перечисляются входные параметры, если они есть, а после RETURNING_VALUES перечисляются выходные параметры.

Пример

Перепишем приведенную выше процедуру POK_LIST таким образом, чтобы из ее тела вызывалась другая процедура, AVG_KOLVO, возвращающая среднее число отпуска конкретного товара

CREATE PROCEDURE AVG_KOLVO (TVR VARCHAR(20)

RETURNS(OUT_AVG_KOLVO INTEGER)

AS

BEGIN

SELECT AVG(KOLVO) FROM RASHOD WHERE TOVAR = :TVR INTO :OUT_AVG_KOLVO;

SUSPEND;

END

CREATE PROCEDURE POK_LIST1 (IN_TOVAR VARCHAR(20))

RETURNS(РОК VARCHAR(20)) AS

DECLARE VARIABLE AVG_KOLVO INTEGER;

BEGIN

EXECUTE PROCEDURE AVG_KOLVO(:IN_TOVAR)

RETURNING_VALUES : AVG_KOLVO;

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

DO

BEGIN

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

SUSPEND;

END

END



Содержание раздела