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&#225;s de NEWS/400.
&#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&#225;s de NEWS/400.
&#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