Procedimientos y transacciones
Hola,
Mi pregunta es si en Firebird 1.5 utilizando procedimientos almacenados que llaman a otros procedimientos almacenados, si se puede hacer que se ejecuten dentro de la misma transaccion. Es decir si tengo:
Parece ser que cada procedimiento automaticamente genera una nueva transaccion, y esto no me permite ver los cambios que a realizado el procedimiento al que he llamado cuando todavia no he terminado el procedimiento inicial. La cuestion es que para no tener un procedimiento muy largo lo dividi en varios, pero al crear nuevas transacciones cada uno no veo los cambios que realizan los otros. Espero haberme explicado. |
Hola.
Solo una sugerencia, es factible que lo ejecutes desde la aplicación cliente, en el caso mio lo ejecuto desde delphi 1 o + SP y el asunto de los commit y rollback me funciona bien. Saludos .- |
Hola Toni.
Si ejecutas un procedimiento desde dentro de otro (con un execute procedure), se están ejecutando dentro de la misma transacción (Firebird no va a abrir una transacción distinta para el nuevo procedimiento). Es más, Firebird no abre ninguna transacción, ni siquiera para el primer procedimiento que ejecutes. La transacción la abren tus componentes Delphi (IBExpress, FibPlus, dbExpert, ...), esa transacción que defines desde Delphi es la única que va a existir, y se a a abrir y cerrar cuando tu lo especifiques en el programa Delphi. Saludos. |
Muchas gracias Guillomarc,
Tu aclaracion me ha servido de mucho, pues el problema parecia ser esto y ademas yo tenia entendido que cada procedimiento generaba su propia transaccion. Finalmente lo he resuelto y era un problema mio del codigo pero que sumado a mi mala interpretacion me liado mas todavia. Gracias de nuevo. |
La franja horaria es GMT +2. Ahora son las 04:05:12. |
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