Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 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
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Como usar el componente IbEvents? MartinS OOP 11 07-05-2012 17:25:07
Post_event y cargas masivas Young Firebird e Interbase 4 22-06-2011 17:50:55
ibEvents santiago14 Firebird e Interbase 1 27-10-2007 05:27:33
IBEvents en remoto Jack Conexión con bases de datos 0 23-08-2005 14:35:34
POST_EVENT con parametros gendelphi Firebird e Interbase 1 13-12-2003 01:18:26


La franja horaria es GMT +2. Ahora son las 15:04:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi