Ver Mensaje Individual
  #1  
Antiguo 20-11-2004
rochi rochi is offline
Miembro
 
Registrado: nov 2004
Ubicación: mvd, uruguay
Posts: 57
Reputación: 20
rochi Va por buen camino
Question Uso adecuado de Rollback

Hola a todos, estoy comenzando con Firebird (v1.5) y si bien la voy llevando tengo ciertas dudas. Estoy haciendo una aplicación con Delphi 7, uso los componentes IBX y no estoy usando CachéUpdate.
Params. de la transacción: readcommited, nowait,rec_version,concurrency.
Los errores los capturo en en evento OnException de la aplicación, todo esto funcionando al pelo.
En este caso particular, el Commit está al cerrar el form, no en el AfterPost o AfterDelete.
Si bien a fuerza de ensayo y error, lecturas varias, incluso mensajes de este foro he sacado algunas conclusiones, aun tengo ciertas lagunas.
Ahora bien, intentando ver como funciona el 'bloqueo' y las transacciones abrí 2 ventanas de mi aplicación (el .exe) para simular digamos un funcionamiento en red. Llamemosle aplicacion 1 y 2 respectivamente.

Supongamos ambas modifican el mismo registro, pero una realiza un post antes que la otra (aun no se realizó el Commit), la 1 x ej. Luego la 2 al intentar hacer el post, lanza la excepción que es capturada y todo lindo.
Mi duda es si las modificaciones hechas por 2, deben ser deshechas con Rollback, o eso se aplica solo si falla el Commit o que otros casos es aplicable. (Aun trabajando desde una sola aplicación, sin otra aplic. concurrente, cuando esto en modo de edición de la tabla, al cancelar los cambios, ya es suficiente, desaparecen sin necesidad de hacer Rollback)

Bueno, fue extenso, espero nadie haya quedado dormido, pero es para que se entienda. Gracias
saludos a todos, rochi

Última edición por rochi fecha: 20-11-2004 a las 04:01:13.
Responder Con Cita