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
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