Adela,

Si lo que quieres es "interceptar" una INSERT o UPDATE para cambiar los valores de un par de campos, adicionalmente a los datos que se vayan a grabar para el registro, siempre puedes definir un trigger que se ejecute ANTES de la INSERT o UPDATE y modificar en el buffer esos dos campos con los datos que quieras. Eso, además, no volverá a disparar el trigger, con lo que no tendrás problema de entrar en un buble infinito de actualizaciones. El trigger, si va a ser un programa CL, COBOL, RPG, etc, se definiría más o menos así:

ADDPFTRG FILE(MiBiblioteca/MiTabla) TRGTIME(*BEFORE) TRGEVENT(*INSERT) PGM(MiBiblioteca/MiProgramaTrigger)

ó

ADDPFTRG FILE(MiBiblioteca/MiTabla) TRGTIME(*BEFORE) TRGEVENT(*UPDATE) PGM(MiBiblioteca/MiProgramaTrigger)

De todas formas, lo más sencillo para lo que quieres hacer es que el trigger tenga el código SQL necesario para cambiar esos dos campos. Hacer un RPG o un COBOL que sea un trigger es bastante más complicado. Por ejemplo:

CREATE TRIGGER MiBiblioteca/MiTrigger
   BEFORE INSERT ON MiBiblioteca/MiTabla
   REFERENCING NEW AS MiRegistro
   FOR EACH ROW
   MODE DB2ROW
   BEGIN ATOMIC
       SET MiRegistro.MiCampoACambiar1 = <NuevoValor1> ;
       SET MiRegistro.MiCampoACambiar2 = <NuevoValor2> ;
   END ;

Dentro del BEGIN ATOMIC y END, puedes poner toda la lógica de negocio que quieras (leer de otra tabla para obtener un valor, insertar, borrar o actualizar registros de otras tablas, condiciones IF/END IF, llamadas a procedimientos almacenados, etc, etc). Eso sí, todo en SQL.

Espero que te sirva.

Un saludo,
Potele


A.GADEA escribió:

        Hola foro:
        Cuando se actualiza o se añade un registro a un fichero salta un triger
¿se puede actualizar el registro que provoca que salte el triger?
        Gracias por anticipado
        Adela


__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400


--
José de la Herrán Núñez
Ayuntamiento de Vitoria-Gasteiz
Departamento de Gestión de la Tecnología y Atención Ciudadana
Responsable de Coordinación Técnica
Pintor Vera Fajardo, 5 bajo, 01008 Vitoria-Gasteiz
Tlf: +34 945 16 16 14
Fax: +34 945 16 16 00
mailto:[EMAIL PROTECTED]


__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a