FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
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! |
|
|
|