Ver Mensaje Individual
  #2  
Antiguo 03-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Kinobi hizo en su momento un pdf llamado "transacciones en Interbase y Firebird, ignoro si está en este foro, aunque en www.firebird.com.mx lo puedes encontrar. Te recomiendo su detenida lectura.

Allí se habla del nivel de aislamiento de una transacción (isolation level), creo que en lugar de usar read commited (que será la que usas actualmente) deberías usar snapshot. Esto se indica en los parámetros del objeto Transaction que uses, dicho de otra forma, en la propiedad Transaction.Params

Cita:
SNAPSHOT: conocido también por lectura repetible (repeteable read). Ofrece
un nivel de aislamiento alto, de tal forma que la transacción no puede
ver los cambios provocados por otras transacciones; es decir, mantiene una
foto fija del estado de la base de datos en el momento que se inició la transacción
A groso modo:
- Empezamos una transacción nueva
- hacemos operaciones con la maestra
- operaciones con la detalle
- buscamos los totales de la detalle (como nuestra transacción en snapshot no puede ver las actualizaciones realizadas por otras transacciones, solo verá los cambios realizados antes de que empezó nuestra transacción).
- mostramos todo en pantalla
- cerramos transacción (commit).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 03-11-2007 a las 17:52:02.
Responder Con Cita