Ver Mensaje Individual
  #1  
Antiguo 03-04-2018
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Reputación: 21
ASAPLTDA Va por buen camino
Smile usando transacciones firebird + firedac no visibles en otra session

Hola a Todos, mi problema es que los cambios ejecutados en la base de datos mediante transacciones no era visible a otros usuarios. Usando firebird 2.5 y firedac con delphi xe10 berlin

Enncontre una posible causa problema y solucion:

Firebird puede manejar transacciones anidadas. cuando se inicia el programa usando coneccion con firedac por omision es autocommit.

Normalmente colocamos :

transaccion.StartTransaction;
try
execute procedurex
commit
except
rollback
end

para evitar anidar la transaccion preguntemos
if DB_Firedac.InTransaction = false then
DB_Firedac.StartTransaction;

con esa intruccion evitamos anidar las transacciones

pero de otro forma nos tocaria dar 2 veces commit
para que los cambios sean visibles a otros usuarios


una forma de evitar que sucedandos transacciones anidadas seria:
DB_Firedac.TxOptions.EnableNested := False ;
esto nos generaria un error en ejecucion si tratamos de iniciar una transaccion anidada
Responder Con Cita