Здравствуйте, solon, Вы писали:
M>>Другой способ получения уведомлений — компонент TIBEvent. С его помощью регистрируем на сервере события, в которых заинтересованы.
M>>На самом сервере в триггерах при наступлении события выполняем POST_EVENT <строка>. TIBEvent получает его и делаем refresh.
M>>При этом не надо постоянно опрашивать сервер, но сама работа с events — требует аккуратности.
S>1.Правильно ли я Вас понял, что для второго случая с TIBEvent,
S>что когда вcтавляются новые записи с помощью триггера, последней строкой в триггере
S>должно быть POST_EVENT <строка>. Тоесть как увязывается воедино:
S> выполнение запроса на вставку новой записи на сервере
S> и посылка события POST_EVENT <строка> вставки новой записи с сервера?
Перефразирую (чтобы мне было понятнее

)
В любом месте на сервере — в триггерах или хранимых процедурах — можно вызвать
POST_EVENT <строка>;
При этом, ПОСЛЕ коммита транзакции, в которой этот триггер или ХП работала,
к клиенту уйдёт событие <строка>, если клиент заранее (т.е. до начала транзакции) на
это событие (<строка>) подписался. И будут приходить, пока клиент не отпишется от событий.
Такой, вкратце, механизм событий.
Следовательно, для получения извещений о новых записях, следует:
— на таблице создать триггер before_ или after_insert или использовать существующий
— добавить в него
POST_EVENT <строка>;
например
POST_EVENT 'NewRow';
— в IBEvents, в свойстве Events добавить строку
NewRow
— установить AutoRegister или Registered по потребностям
— написать обработчик для события IBEvents.OnEventAlert, который как раз и будет вызываться по приходу события.
S>2. Я не могу понять как работает в Делфях пример IBXEvents:
S> открываю базу events.gdb,генерирую событие MyEvent, но две последние
S> кнопки не работают: Event Registation и Event Received ???
S> Тоесть в листбокс ничего не вижу???
В Event Registation надо добавить строку "MyEvent" и зарегистрировать.
Можно добавить сразу несколько:
aaa
bbb
ccc
После этого, вводим в Event какое-либо из зарегистрированных, нажимаем Generate Event и получаем его в Event Received.
Послав незарегистрированное, в Event Received ничего и не получим.