Cita:
Empezado por Leopard2
Hola, tengo un programa de facturas, el primero hecho con firebird 2.5 y los IBX de Delphi 7 y me da este error en distintas operaciones (borrar, ingresar, modificar), al parecer un usuario deja la tabla o una transacciòn colgada, que opinan de cual puede ser el motivo del mensaje ?
Saludos
|
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;