Ver Mensaje Individual
  #5  
Antiguo 07-12-2022
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
Parece que solo haces Commit de la transacción si falla.

Deberías utilizar un bloque try..finally.
La diferencia es que el bloque FINALLY siempre se ejecuta (se ejecuta si el bloque TRY finaliza correctamente o falla).
El bloque EXCEPT solo se ejecuta si falla.

Si este es el caso, no estarás "cerrando" la transacción hasta que cierres el formulario, que a su vez hace commit y cierra tablas y base de datos.

Código:
begin
  try
    dat.datamodule1.IbTable1.Append;
    dat.datamodule1.IbTable1.Fields[0].AsString:=edit1.text;
    ...
    dat.datamodule.IbTable1.Fields[20].AsString:=Edit20.text;
    dat.datamodule.IbTabl11.Post;
  finally {Except}
    dat.Datamodule.IbTransaction1.CommitRetaining;
Responder Con Cita