Ver Mensaje Individual
  #10  
Antiguo 19-08-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Reputación: 24
kinobi Va por buen camino
Hola,

Cita:
Posteado originalmente por rafadrover Voy a liar un poco mas la cosa:
Supongamos que tenemos una ficha MDI cliente, y otra ficha MDI reserva, en la de cliente se inicia un transaccion, y al final un commit. En la de reserva igual.
Si he entendido bien, hay dos transacciones, una en cliente y otra en reserva.

Cita:
Posteado originalmente por rafadrover Desde la ficha de reserva se puede abrir la ficha de cliente, en forma modal, por tanto, cuando se tiene activa transaccion de reserva, se inicia otra, la de cliente, si ambas tablas tienen asociadas la misma transaccion,
Imposible. Si se inician dos transacciones, son dos transacciones. No hay forma de ligar una transacción a la otra. Además, una de las características de cualquier sistema transaccional es el aislamiento entre transacciones.

Cita:
Posteado originalmente por rafadrover cuando se cierra la ventana cliente, esta hace el commit, guardando todos los datos de reserva,
Entiendo que es guardar los datos de reserva sin hacer commit.

Cita:
Posteado originalmente por rafadrover luego volvemos a la ficha de reserva, si hacemos un commit,
Correcto, ahora hacemos el commit en reserva.

Cita:
Posteado originalmente por rafadrover todo va bien, pero si el usuario quiere cancelar el trabajo y son transacciones distintas,todas las operaciones de reserva, se cancelan, pero las de cliente al ser una transaccion distinta se han guardado.
Si se ha hecho el commit en ambas transacciones (cliente y reserva) no hay forma de volver atrás (no al menos directamente), ni en una ni en otra. Además, debido a lo que comentamos anteriormente del aislamiento entre transacciones, lo que haya ocurrido con la transacción en cliente no afecta a lo que vaya a ocurrir con la transacción reserva. Entiende "no afecta" desde el punto de vista del mecanismo de confirmación (commit) o rechazo (rollback) de los cambios, otra cosa es que un cambio en los datos de una transacción pueda hacer que el servidor no acepte los cambios de otra debido a restricciones de integridad.

Saludos.
Responder Con Cita