Книга: 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 мы соберем такую же процедуру и реализуем некоторую дополнительную обработку для перехвата исключения и обработки этого условия прямо внутри процедуры. Сейчас же мы позволим процедуре завершиться и использовать это сообщение об исключении для информирования вызвавшей программы об этой ситуации.
- Выполняемые процедуры
- Процедуры и функции
- Наполнение каркаса процедуры
- Процедуры
- 3.2. Процедуры
- Текстовые сообщения процедуры POST
- Хранимые процедуры выбора
- Глава 3 Массивы, процедуры, функции
- Функции и процедуры пользователя
- Функции ReadFileEx, WriteFileEx и процедурызавершения
- Выполнение процедуры завершения и возврат из функции дежурного ожидания
- 15.3 Программы и процедуры RPC