Estoy tratando de hacer que se ejecute el evento, pero no me funciona.
Uso D7, FB 2.0.1 y MDO.
En la base de datos defino el procedimiento:
Código SQL
[-]CREATE PROCEDURE ACTUALIZARCITAS
as
begin
post_event 'ACT_CITAS';
suspend;
end^
GRANT EXECUTE ON PROCEDURE ACTUALIZARCITAS TO SYSDBA;
// ¿ que hace la ultima línea ?
Que lanzo despues con varios triggers:
Código SQL
[-]CREATE TRIGGER CI_CITAS_EVENT_NUEVA FOR CI_CITAS
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 0
AS
begin
EXECUTE PROCEDURE ACTUALIZARCITAS;
end
en delphi pongo un componente: MDOEvents con la base de datos asignada
Código Delphi
[-]procedure TfCitas.MDOEvents1EventAlert(Sender: TObject; EventName: String;
EventCount: Integer; var CancelAlerts: Boolean);
begin
If EventName = 'ACT_CITAS' then
MostrarCitas; end;
Pero cuando incorporo una nueva cita (INSERT) desde otro módulo de la aplicación (otro exe) no ocurre el evento.
Lo único "raro" es que en mi datamodule defino 2 transacciones Una "Read commited" (read_committed, rec_version, nowait) para los SELECT y otra Read-Write table stability (write, consistency) para insert, update y delete.
¿me falta algo?
Edito:
inclui esto y tampoco funciona:
Código Delphi
[-]procedure TfCitas.FormActivate(Sender: TObject);
begin
If Not MDOEvents1.Registered Then
MDOEvents1.Registered := true;
end;