Cita:
Empezado por RONPABLO
acá podrás mirar porque salen los bloqueos en firebird. La ídea es que compare con su transacción y mire porque pasa.
Por cierto, algo que me pasaba antes con respecto a estos bloqueos era que usaba componentes del tipo DBEdit o similares, entonces por decir algo alguien empezaba a escribir en un dbEdit y acá arrancaba una transacción y después de mucho rato seguía abierta y sin un commit a la vista. Luego desde otro equipo alguien más trataba de guardar algo pero en el equipo original había aún una transacción esperando a realizar ya fuera commit o rollback... Lo mejor es evitar eso y hacer transacciones lo más pequeñas posibles.
ejemplo
Código Delphi [-]
try
Transaccion.(iniciartransaccion) DSPersonas.FIeldByName('nombre').asstring = 'Jose';
DSPersonas.FIeldByName('telefono').asstring = '3158872244';
DSPersonas.post;
DSPersonas.ApplyUpdates;
Transaccion.commit;
except
Transaccion.rollback;
|
ocupo los DBEdit y IBDataset para las tablas :
MasterDb.ReqmtoMas.Post;
Try
Masterdb.IBTrsc.CommitRetaining;
ShowMessage('! REQUERIMIENTO GRABADO CORRECTAMENTE !');
Except
MasterDb.ReqmtoMas.Cancel;
Masterdb.IBTrsc.RollbackRetaining;
ShowMessage('Se produjo un error y no se grabarón los datos');
end;