Использование компонента
Пусть в БД, расположенной на сервере, для таблицы БД RASHOD определены триггеры
CREATE TRIGGER AIEVENT_RASHOD FOR RASHOD
ACTIVE
AFTER INSERT
AS
BEGIN
POST_EVENT "INS_POSTED";
END
CREATE TRIGGER AUEVENT_RASHOD FOR RASHOD
ACTIVE
AFTER UPDATE
AS
BEGIN
POST_EVENT "UPD_POSTED";
END
CREATE TRIGGER ADLEVENT_RASHOD FOR RASHOD
ACTIVE
AFTER DELETE
AS
BEGIN
-POST_EVENT "DEL_POSTED";
END
Для регистрации указанных сообщений в клиентском приложении разместим компонент TIBEventAlerter с именем IBEventAlerterl. Укажем в его свойстве Database имя компонента TDatabase, управляющего соединением с удаленной БД. Установим свойство этого компонента Registered в True. В списке свойства Events определим события, при уведомлении о наступлении которых с сервера, в клиентском приложении должны предприниматься какие-либо действия (рис. 34.1).
Определим обработчик события OnEventAlert. Пусть нам необходимо, чтобы через каждые десять изменений происходило обновление набора данных RashodQuery (компонент TQuery), ассоциированного с таблицей RASHOD. Это важно, поскольку клиентское приложение "не видит" изменений в БД. сделанных другими приложениями.
procedure TFormI.IBEventAlerterlEventAlert(Sender: TObject;
EventName: string; EventCount: Longint; var CancelAlerts:
Boolean) ;
const GettingEventsCnt : Integer = 0;
STEP = 10;
Period : Integer = STEP;
begin
GettingEventsCnt := GettingEventsCnt + EventCount;
IF GettingEventsCnt > Period THEN begin
RashodQuery.Close;
RashodQuery.Open;
Period := GettingEventsCnt + STEP;
END;//if