Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Многотабличные процедуры

Многотабличные процедуры

Выполняемая процедура DELETE_EMPLOYEE является версией процедуры, которую вы можете найти в базе данных EMPLOYEE в вашем каталоге Firebird /examples. Она реализует некоторые бизнес-правила для служащих, покидающих компанию.

Объявление исключения

Поскольку мы собираемся использовать исключение в этой процедуре, его нужно создать до создания процедуры:

CREATE EXCEPTION REASSIGN_SALES

'Reassign the sales records before deleting this employee.' ^

COMMIT ^

(Переназначьте записи продаж перед удалением этого служащего)

Процедура

Теперь сама процедура. Входной аргумент EMP_NUM соответствует первичному ключу таблицы EMPLOYEE- EMP_NO. Он позволяет процедуре выбирать и работать с одной записью служащего, а внешние ключи из других таблиц ссылаются через него на эту запись.

CREATE PROCEDURE DELETE_EMPLOYEE (

EMP_NUM INTEGER )

AS

DECLARE VARIABLE any_sales INTEGER DEFAULT 0;

BEGIN

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

Оглавление книги


Генерация: 1.160. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз