Elimina esos commit que haces después de los execsql
Al componente TIBTransaction dale estos valores:
Código:
write
nowait
rec_version
read_committed
Luego, en el
evento del query que lo necesites, haces un commit explícito:
Código Delphi
[-]procedure TDMmain.QRcentrosCosteAfterPost(DataSet: TDataSet);
begin
DataSet.Transaction.CommitRetaining;
end;
Y por supuesto, no olvides hacer un commit (no un commitretaining) por ejemplo cuando vuelves a la pantalla principal. Ya depende de cómo tengas estructurado tu programa.