Читаем Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ полностью

Когда вы используете такую утилиту для интерактивного создания модулей PSQL, она обычно выдает исключение на оператор SET TERM, потому что как оператор SQL он не имеет смысла за пределами isql. При этом в скриптах эти утилиты обычно обрабатывают оператор SET TERM и внутренне используют альтернативный терминатор так же, как и утилита isql.

Таким образом, включайте оператор SET TERM В isql, если вы используете этот инструмент интерактивно, а также включайте его в скрипты.

Альтернативный терминатор может быть любой, нравящейся вам строкой символов, за исключением точки с запятой, пробела и апострофа. Если вы используете буквенный символ, он будет чувствительным к регистру. Если вам так нравится, можете задать терминатор, содержащий несколько символов, включая пробелы; он только не может быть зарезервированным ключевым словом. Оба следующих оператора допустимы:

SET TERM ^

SET TERM boing! ;

! ! !

СОВЕТ. He будьте только слишком изобретательными при создании ваших строк терминаторов, иначе вам придется набирать большой текст!

. ! .

В определениях PSQL применяйте точку с запятой во всех внутренних операторах за исключением BEGIN и END и используйте альтернативный терминатор в конечном операторе END:

. . .

END ^

Для возврата к "нормальному" оператору терминатора выдайте второй оператор SET TERM, который изменит результат первого:

. . .

END ^

COMMIT ^

SET TERM ;^

Рис. 29.1. Обязательные элементы в определении модуля PSQL

На рис. 29.1 основные элементы определения модуля PSQL отделены для иллюстрации требуемых элементов в секциях HEADER (Заголовок) и BODY (Тело) модуля.

Обязательные части затенены.

<p>Элементы заголовка</p>

Имя процедуры или триггера должно быть уникальным в базе данных.

Для триггера:

* ключевое слово FOR и ИМЯ таблицы идентифицируют ту таблицу, операции с которой вызывают данных триггер;

* режим (ACTIVE или INACTIVE);

* параметр фазы (BEFORE или AFTER) определяет, когда вызывается триггер;

* параметр события (INSERT, UPDATE, DELETE)[113];

* необязательное ключевое слово POSITION, за которым следует целое число, указывающее последовательность вызова.

Для хранимой процедуры:

* необязательный список входных параметров и их типов данных;

* если процедура возвращает значения вызвавшей программе, то список выходных параметров и их типов данных.

<p>Элементы тела</p>

Для хранимых процедур и триггеров:

* тело модуля может начинаться со списка из одного или более объявлений локальных переменных (имя и тип данных SQL - домен указывать нельзя);

* блок операторов на языке процедур и триггеров Firebird, заключенный в операторные скобки BEGIN и END. Блок сам может включать другие блоки, следовательно, может существовать много уровней вложенности;

* некоторые встроенные блоки могут быть обработчиками исключений, возникающих в предшествующих блоках. Такие блоки являются условными в соответствии с предшествующим предикатом WHEN. Модуль глобальных обработчиков исключений должен предшествовать всем встроенным блокам.

<p>Элементы языка</p>

В табл. 29.1 показаны элементы языка PSQL, доступные в Firebird.

Таблица 29.1. Расширения PSQL для хранимых процедур и триггеров

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных