Ver Mensaje Individual
  #2  
Antiguo 14-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
No lo entiendo

Y no creo que esté bien diseñado el asunto.

Se realiza una modificación en una tabla.
1 - se graba la modificación
2 - Salta el disparador after insert-update y éste provocará una actualización en la misma tabla
3 - Volvemos al paso 1

Es lo que se llama recursión. Normalmente los trigger after sirven para modificar otras tablas.

Pero vamos..
Código SQL [-]
declare variable valor integer;
begin

execute procedure Miproc returnings_values(:valor);

update Mitabla set micampo = :valor;
end;

Yo intentaría hacerlo en el before insert-update:
[sql]
Código SQL [-]
delcare variable valor integer;
begin

execute procedure Miproc returnings_values(:valor);

new.campo = :valor;  
/* aquí actualizo el valor, como es un trigger "before" puedo sustituir el 
   futuro valor que tendrá, me ahorro el trigger after insert-update y además
   evito recursión.

   Si el Sp necesita un valor de un campo de este mismo registro, se lo puedes
   pasar como parámetro con old.Nombrecampo
*/
end;
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita