Ver Mensaje Individual
  #1  
Antiguo 05-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
IBEvents no captura POST_EVENT Firebird 2.5 ?

Hola gente

Haciendo unas pruebas con Firebird 2.5, Delphi7 e IBX, veo que aparentemente el componente IBEvents ni se entera de que se disparó POST_EVENT.

Campos de TABLA1:
Código:
ID INTEGER
NOMBRE VARCHAR(10)
Código SQL [-]
CREATE TRIGGER EV_TABLA1_MODIFIED FOR TABLA1
ACTIVE AFTER INSERT OR UPDATE OR DELETE POSITION 1
AS
BEGIN
  POST_EVENT 'TABLA_MODIFIED';
  INSERT INTO TABLALOG (ID, NOMBRE) VALUES(NEW.ID, NEW.NOMBRE);
END
TABLALOG tiene los mismos campos que TABLA1 y está para verificar el disparo del trigger. Aunque nunca pensé que fuera eso, no quise descartar ninguna posibilidad.

Luego en Delphi:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
  IBDatabase1.Connected:= True;
  IBEvents1.Events.Clear;
  IBEvents1.Events.Add('EV_TABLA1_MODIFIED');
  IBEvents1.RegisterEvents;
  IBDataSet1.Open;
end;

procedure TForm1.IBEvents1EventAlert(Sender: TObject; EventName: String;
  EventCount: Integer; var CancelAlerts: Boolean);
begin
  ShowMessage(EventName);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  n: Integer;
begin
  n:= Random(10000)+1;
  IBDataSet1.Append;
  IBDataSet1.FieldByName('ID').AsInteger:= n;
  IBDataSet1.FieldByName('NOMBRE').AsString:= 'Registrado '+IntToStr(n);
  IBDataSet1.Post;
  IBTransaction1.Commit;
end;

procedure TForm1.IBDataSet1AfterDelete(DataSet: TDataSet);
begin
  IBTransaction1.Commit;
end;
...
Usando Trace Into, verifiqué que jamás entra al evento OnEventAlert. En la tabla de log queda perfectamente registrado el disparo del mismo.

¿ A alguién le ha ocurrido o sabe algo al respecto ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita