Ver Mensaje Individual
  #7  
Antiguo 12-11-2015
Leopard2 Leopard2 is offline
Miembro
NULL
 
Registrado: may 2012
Posts: 39
Reputación: 0
Leopard2 Va por buen camino
Cita:
Empezado por RONPABLO Ver Mensaje
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)   // No recuerdo el comando que inicia una transacción
   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;
Responder Con Cita