jverasobino
27-12-2004, 14:20:06
Holas
Estoy empezando a trabajar con Firebird (v.1.0.3) y estoy metido en el tema de triggers y procedimientos almacenados. :D
Como experimento, traté de actualizar el resultado de unos campos de una tabla a través de un procedimiento almacenado (Proceso de negocio para calcular), el cual es gatillado por un trigger de actualizacion, es decir...se produce recusividad :eek:
explico en detalle lo realizado: 2 tablas A y B:
A = Parametros y Totales Mensuales
B = Detalle de cada mes.
X = Procedimiento Almacenado que calcula según parámetros de "A" y datos de tabla "B". Este procedimiento es gatillado por un trigger de actualización de "A".
si se modifica un parametro en "A", el trigger llama al procedimiento almacenado y actualiza los totales de "A". Esta actualizacion produce un nuevo gatillamiento del trigger, con lo cual se produce recursivdad.
¿Como puedo detener esta recursividad que se produce? :confused:
se que existen eventos (post_event) y excepciones, pero no he encontrado documentación al respecto y no se como se usan, pero tampoco se si me sirven, no quiero hacer depender estos cálculos a la aplicación. :rolleyes:
la idea es desarrollar el proceso de negocio en la DB, y el cliente para registro de datos en PHP4.
cualquier colaboración se agradece.
Estoy empezando a trabajar con Firebird (v.1.0.3) y estoy metido en el tema de triggers y procedimientos almacenados. :D
Como experimento, traté de actualizar el resultado de unos campos de una tabla a través de un procedimiento almacenado (Proceso de negocio para calcular), el cual es gatillado por un trigger de actualizacion, es decir...se produce recusividad :eek:
explico en detalle lo realizado: 2 tablas A y B:
A = Parametros y Totales Mensuales
B = Detalle de cada mes.
X = Procedimiento Almacenado que calcula según parámetros de "A" y datos de tabla "B". Este procedimiento es gatillado por un trigger de actualización de "A".
si se modifica un parametro en "A", el trigger llama al procedimiento almacenado y actualiza los totales de "A". Esta actualizacion produce un nuevo gatillamiento del trigger, con lo cual se produce recursivdad.
¿Como puedo detener esta recursividad que se produce? :confused:
se que existen eventos (post_event) y excepciones, pero no he encontrado documentación al respecto y no se como se usan, pero tampoco se si me sirven, no quiero hacer depender estos cálculos a la aplicación. :rolleyes:
la idea es desarrollar el proceso de negocio en la DB, y el cliente para registro de datos en PHP4.
cualquier colaboración se agradece.