Ver Mensaje Individual
  #4  
Antiguo 06-02-2013
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
También puede ser que estés registrando más de una vez el evento.
El OnShow se ejecuta cada vez que se muestra el formulario (si minimizas y vuelves a maximizarlo o si haces un Form.Hide; Form.Show.
Quizás debas poner el registro de eventos en OnActivate.

También puede ser que se esté ejecutando el evento al mismo tiempo que haces un Close y el evento trate de hacer un Refresh.
Para probar puedes crear una variable global a la unidad

Código Delphi [-]
var
   TenerEnCuentaEventos : Boolean;

OnCreate
begin
   TenerEnCuentaEventos := True;
end;

OnEvent
begin
   if ((TenerEnCuentaEventos) and (EventName='ACTUALIZA_CLIENTES')) then
   begin
      Clientes.Refresh;
   end;
end;

Consulta
begin
   SQL := 'Select * from Clientes ORDER BY NOMBRE ASCENDING';

   // "desactivo" eventos
   TenerEnCuentaEventos := False;
   try
      Clientes.CLose;
      if pFIBTransaction1.InTransaction then pFIBTransaction1.CommitRetaining;
      pFIBTransaction1.StartTransaction;
      CLIENTES.SelectSQL.Clear;
      CLIENTES.SelectSQL.Add(SQL);
      CLIENTES.QSelect.ExecQuery;
      pFIBtransaction1.CommitRetaining;
      Clientes.Open;
   finally
      // "activo" nuevamente los eventos
      TenerEnCuentaEventos := True;
   end;
end;
Responder Con Cita