Delphi 3 и создание приложений баз данных

         

Использование компонента


Пусть в БД, расположенной на сервере, для таблицы БД 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



Содержание раздела