Transacciones con Interbase 6 / IBX Express
¿Necesitas saber cómo implementar transacciones usando Interbase 6 e IBX Express y no morir en el intento?
Pues como consejo, en tu datamodule pega un componente TIBDatabase, uno TIBTransaction y finalmente un TIBTable o cualquier TIBDataSet. Conecta IBDatabase1 con IBTransaction1 a traves de DefaultTransaction y DefaultDatabase. Configurá IBDatabase1 par que apunte a tu base de datos (archivo.gdb, usuario y password). Despues conecta IBTable1 con IBDatabase1 y automáticamente se conectará con IBTransaction1. Seleccioná una tabla. ¿Hasta aquí todo bien? Entonces, seguimos. Ahora pegá un botón (el que más guste) para el Commit y otro para el Rolback. Pegá una grilla enlazada a un DataSource y éste enlazado a la tabla para que veas el resultado. Asigná los métodos DataModule1.IBTransaction1.Commit y DataModule1.IBTransaction1.Rollback a cada botón (en el evento OnClick, por supuesto y chequendo que exista una transacción activa: DataModule1.IBTransaction1.InTransaction). Abrí la tabla, efectuá cualquier operación y probá de usar estos botones. ¿El resultado?: Las tablas simplemente se cierran. Agregá entonces en el evento de la tabla AfterTransactionEnd: IBTable1.Open; ¿El efecto?: Se produce una excepción. ¿Entonces?, modificá el evento AfterTransactionEnd para que quede:
y además agregá la línea IBTransaction1.Active := True; antes de abrir cualquier tabla. !Y no morirás en el intento! |
La franja horaria es GMT +2. Ahora son las 11:12:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi