ОПЕРАТОР ГЕНЕРАЦИИ СОБЫТИЯ POST_EVENT
ОПЕРАТОР ЦИКЛА WHILE
Оператор цикла WHILE обеспечивает выполнение оператора, указанного после ключевого слова DO пока указанное после WHILE условие истинно. Цикл WHILE может использоваться в хранимых процедурах и триггерах.
Синтаксис:
while (<condition>) DO <compound_statement>
WHILE... DO – оператор выполнения цикла, который повторяет оператор или блок <compound_statement>, указанный после DO, пока условие <condition> истинно. Условие проверяется в начале каждого цикла. В качестве примера рассмотрим вычисление факториала.
S = 1;
WHILE (I > 0) DO
BEGIN
S = S * I;
I = I - 1;
END
Оператор POST_EVENT используется для генерации события, которое может быть в дальнейшем обработано в приложениях.
Сама обработка событий в InterBase строится по следующей схеме.
- Приложение выдает команду EVENT INIT request_name (event_namel [, event_name2...]);
По этой команде создается список событий request_name, содержащий имена событий event_namel,event_name2...
- То же или другое приложение выдает командуEVENT WAITrequest_name;
По этой команде приложение приостанавливается и ожидает наступления одного из событий в списке request_name.
|
|
- Само событие генерируется внутри триггера или хранимой процедуры командой POST_EVENT.После того как такое событие произошло, приложение, ожидающее событие, получает соответствующее сообщение и продолжает свою работу. Такой механизм позволяет приложениям обрабатывать различные специфические ситуации при работе с базой данных.
Внутри триггеров и хранимых процедур реализуется только команда POST_EVENT.
Синтаксис:
POST_EVENT<event_name>;
Параметр <event_name> может быть либо символьным литералом в кавычках, либо строковой переменной.
Замечание. Имена переменных в хранимых процедурах не должны предваряться символом ":" нигде, кроме как в командах SELECT, INSERT, UPDATE, DELETE, что позволяет отличать их от имен столбцов.
При выполнении процедуры команда POST_EVENT сообщает диспетчеру событий о наступлении события. Диспетчер событий следит за приложениями, ждущими событий, и извещает об их наступлении.
post_event "Oh_oh_oh";
или
ABC = "Oh_oh_oh"; POST_EVENT ABC;
Внутри хранимых процедур и триггеров могут использоваться стандартные команды SQL: INSERT, UPDATE, SELECT, DELETE. Единственной особенностью этих команд внутри процедур и триггеров является то, что в них могут использоваться в качестве параметров локальные переменные процедур. Для того чтобы отличать локальные переменные от столбцов таблиц в командах INSERT, UPDATE, SELECT, DELETE, имена локальных переменных предваряются символом ":".
Кроме того, для помещения результатов выборки в локальные переменные к команде SELECT добавляется опция INTO: var [,: var...].