Si usas Interbase en cualquiera de sus versiones, tienes el componente "TIBEvents" que recibe las notificaciones que se han producido en la BBDD.
El uso es muy simple, no necesitas "timer" ni nada parecido, solo este componente que espera una notificación de los eventos que tengas registrados en el componente, ejemplo:
En el trigger de la entidad que quieres que realice la notificación, tienes que poner lo siguiente:
Código SQL
[-]
CREATE TRIGGER PR_OP_BU1 FOR PR_OP
ACTIVE BEFORE UPDATE POSITION 1
....
.......
POST_EVENT 'OP_MOD';
y en el componente TIBEvents lo siguiente:
Código Delphi
[-]
With IBEventos do
begin
AutoRegister := True;
DataBase := TuBBDD;
Events -> 'picha para que salga el asistente y añade tu evento. "OP_MOD" es el nombre del mio.
end;
Doble click sobre el evento "onEventAlert":
Código Delphi
[-]
procedure Tdm.IBEvtBackupEventAlert(Sender: TObject; EventName: String;
EventCount: Integer; var CancelAlerts: Boolean);
begin
if EventName = 'OP_MOD' then frMain.Alerta(OP_MOD); end;
Ya ta eso es todo.