![]() |
Transacciones
Buenas q tal?
Tengo una prequeña duda y queria escuchar la opinion de los expertos de por aqui. Vereis tengo una aplicación que usa una base de datos firebird y mi duda es si es mejor usar un solo componente IBTransaction para todas las tablas o usar varios para cada una. :confused: Ante todo os agradezco vuestras opiniones. |
Si en una transaccione quieres insertar, por ejemplo, la cabecera y el detalle de un pedido y si algo sale mal hacer un rollback de todo, deberás usar una sola.
Si no es así, puedes usar más de una. También puedes usar una de solo lectura y otra para hacer los insert/update/delete. Yo utilizo 2 por cada DataModule. Una para tener todo en modo lectura y otra para hacer los insert/update/delete. Obviamente, siempre hay excepciones... :) |
gracias por tu respuesta, lo meditare mas tranquilamente lo d las transacciones, pero se me ha ocurrido hacer grupos, por ejemplo, si tenemos compras y ventas, una transaccion para controlar albaranes y facturas de compras y otra para lo propio de ventas.
Q t parece?:D |
Al final de cuentas, lo importante es que las transacciones esten vivas el menor tiempo posible.
Esto quiere decir que puedes tener una o muchas, pero tienes que tratar de que graben sus datos lo antes posible. Un ejemplo: Cada acción tiene su StartTransaction y su Commit. La cantidad de transacciones abiertas es siempre 1. Código:
T1.StartTransaction --- ultima transaccion activa=1, próxima transacción=2 (En este caso T1 se abre al principio y se cierra la última. Esto hace que el resto de transacciones deban esperar a que se haga commit, para poder hacer commit de sus propios datos) Código:
T1.StartTransaction --- ultima transaccion activa=1, próxima transacción=2 |
La franja horaria es GMT +2. Ahora son las 21:35:38. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi