Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Recursividad en trigger (https://www.clubdelphi.com/foros/showthread.php?t=26687)

micayael 31-10-2005 15:56:57

Recursividad en trigger
 
Hola.

Tengo un trigger que calcula para un presupuesto (AFTER UPDATE) que llama a un SP que recalcula el total del presupuesto sumando todos los totales de los detalles y me devuelve el total para actualizar el total de mi presupuesto pero cuando se ejecuta me dice

Too many concurrent executions of the same request

Segun entiendo es porque en el trigger de actualizacion vuelve a actualizar lo que hace que sea realice un bucle. Como puedo hacer para poder actualizar este dato?

jachguate 31-10-2005 21:53:06

Creo que aquí hay un problema de diseño, puesto que aparentemente hay una recursividad infinita. Desconozco el método que sigue firebird para lanzar el error, pero estoy convencido que el límite será suficientemente alto como para ocurrir solo en casos donde efectivamente se da este caso.

Por otro lado, de la explicación que das, no entiendo por que el sp manda actualizar nuevamente el registro que lanzó el trigger...

Hasta luego.

;)

Héctor Randolph 31-10-2005 22:32:44

Prueba a desactivar el trigger para evitar recursividad.

Código SQL [-]

ALTER TRIGGER nombre_trigger INACTIVE; /*desactiva el trigger en cuestión */

/* Coloca  tu código de actualización con SP aquí*/

ALTER TRIGGER nombre_trigger ACTIVE; /*activa el trigger nuevamente */

Un Saludo


La franja horaria es GMT +2. Ahora son las 07:40:14.

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