FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Totalizar sobre una base en actualizacion
Estimados Foristas:
El problema que se me presenta es tener que calcular totales sobre tablas con un gran número de registros mientras estos se encuentran en actualización. Para tratar de aclarar un poco, el problema puede pensarse como que tengo un par de tablas en relacion maestro/detalle con un gran numero de registros y sobre estas debo, primero, realizar cálculos en la tabla maestra y totales sobre la tabla de detalle y presentarlos en una nueva relación maestro/detalle. Si bien la actualización se realiza en un ambiente transaccional, los tiempos involucrados hacen que los resultados de las consultas sean inconsistentes, es decir que la informacion dada en la tabla maestra no se corresponde con lo totalizado en la tabla detalle. Si alguien conoce algun método o técnica para realizar estas presentación, le agradeceria cualquier sugerencia. Muchas gracias. |
#2
|
||||
|
||||
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:
- 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 18:52:02. |
#3
|
|||
|
|||
yo creo que el problema es que aunque usando la transaccion en modo snapshot , como los calculos tardan en hacerse (por la cntidad de registros) , siempre habrá alguien que modifique algun registro en el detalle , con lo que los calculos quedarian inconsistentes , ya que lo calculado no corresponderia con lo que realmente hay en el detalle al hacer el commit.
la unica manera que veo es meter triggers y proc almacenados y que estos sean los que hagan los calculos y actualicen los totales. y aun así tampoco estoy seguro que funcione correctamente. saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Report Manager - Totalizar campos | hperez | Impresión | 0 | 23-07-2007 20:00:46 |
Totalizar sin anidar consultas? | Miguel Galarza | Firebird e Interbase | 0 | 10-11-2006 23:37:46 |
Problema de actualizacion de base de datos | dmagui | Varios | 1 | 20-12-2005 21:44:13 |
Problema con la actualizacion de un base Interbase | Sebas77 | Firebird e Interbase | 1 | 27-06-2005 16:29:30 |
Actualización base de datos remota | D@byt | Conexión con bases de datos | 2 | 16-05-2005 19:18:22 |
|