Ver Mensaje Individual
  #3  
Antiguo 20-12-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Reputación: 13
MartinS Va por buen camino
Hola: Parto del supuesto después del commit tal como te pregunta ecfisa y supongo que has creado un trigger para firebird para tal caso, por ejemplo:

Código SQL [-]
CREATE TRIGGER POST_NEW_REG FOR CLIENTES
ACTIVE AFTER INSERT
POSITION 0
AS
BEGIN
 
  POST_EVENT 'new_reg';
END


Obviamente el trigger anterior se dispara al momento de ingresar uno nuevo y logicamente despues del commit.

Luego con la utilizacion de un IbEvents haces:

Cuando se crea el formulario:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  IBEvents1.Events.Clear;
  IBEvents1.Events.Add('new_reg');
  IBEvents1.RegisterEvents;
  //....
end;

y en el event alert:

Código Delphi [-]
procedure TDM.IBEvents1EventAlert(Sender: TObject; EventName: string;
  EventCount: Integer; var CancelAlerts: Boolean);
begin
  if EventName = 'new_reg' then
  Begin
  // ShowMessage('Nuevo registro');
  SClientes.DataSet.Refresh;
  End;  
end;

donde preguntamos si viene el evento new_reg hacemos el refresco del datasource que enlaza la grilla

Se enuncia que firebird usa otro puerto adicional al 3050 para el procesamiento de eventos y lo asigna arbitrariamente. Estos es cierto y en su caso se configura editando el Firebird.conf en RemoteAuxPort a 6020 por ejemplo, habilita ese puerto en el firewall y listo.-

Saludos
Responder Con Cita