duda con commit y rollback

17/01/2008 - 09:44 por Vicente García | Informe spam
Hola a todos,

Estoy haciendo una aplicación en la que antes de confirmar una acción hago
muchos accesos a la base de datos y no hago el COMMIT hasta que el usuario
acepta la operación pero me gustaría saber si hay alguna forma de
recuperarse al estado anterior después de haber hecho el COMMIT porque hago
muchas modificaciones en la base de datos en cada COMMIT y quiero
implementar una opción que sería algo así como "deshacer cambio".

Muchas gracias.
 

Leer las respuestas

#1 Jesús López
17/01/2008 - 12:08 | Informe spam
Pues no, después del COMMIT ya no hay manera de deshacer. Para volver al
estado anterior tendrías que hacer una transacción de compensación, es decir
una nueva transacción que dejara la base de datos en el estado anterior.

Por otra parte dices "no hago el COMMIT hasta que el usuario acepta la
operación". ¿Quieres decir que el usuario controla cuando empieza y termina
la transacción? ¿es posible que el usuario pueda empezar una transacción,
irse a tomarse algo, volver al cabo de dos horas y luego confirmar la
transacción?

En general es muy mala práctica dejar la duración de las transacciones bajo
control del usuario. Las transacciones deberían durar lo mínimo posible y si
lo dejas bajo el control del usuario pueden durar horas...

Saludos:

Jesús López
www.solidq.com



"Vicente García" escribió en el mensaje
news:
Hola a todos,

Estoy haciendo una aplicación en la que antes de confirmar una acción hago
muchos accesos a la base de datos y no hago el COMMIT hasta que el usuario
acepta la operación pero me gustaría saber si hay alguna forma de
recuperarse al estado anterior después de haber hecho el COMMIT porque
hago muchas modificaciones en la base de datos en cada COMMIT y quiero
implementar una opción que sería algo así como "deshacer cambio".

Muchas gracias.

Preguntas similares