Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   usando transacciones firebird + firedac no visibles en otra session (https://www.clubdelphi.com/foros/showthread.php?t=92965)

ASAPLTDA 03-04-2018 01:45:35

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

Neftali [Germán.Estévez] 03-04-2018 08:59:52

Has planteado el problema, y algunas alternativas.
La duda es que personalmente a mi no me queda claro cual es la pregunta.

ASAPLTDA 05-04-2018 03:57:29

Manejo De Transacciones
 
Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 525452)
Has planteado el problema, y algunas alternativas.
La duda es que personalmente a mi no me queda claro cual es la pregunta.

Hola Neftali, la idea es compartir el problema y la soluccion encontrada

Neftali [Germán.Estévez] 05-04-2018 08:51:00

Cita:

Empezado por ASAPLTDA (Mensaje 525481)
Hola Neftali, la idea es compartir el problema y la soluccion encontrada

Perfecto, gracias.
^\||/^\||/^\||/^\||/


La franja horaria es GMT +2. Ahora son las 01:01:06.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi