DB2 Trigger

5
DB2/400 Implementación de disparo DB2/400 Trigger Implementation Una de las mejoras de bases de datos más importantes entregados en V3R1 es el soporte para disparadores. Un disparador es un programa que se adjunta a un evento de base de datos específica? Insertar, actualizar o eliminar un registro. Lo que hace que desencadena interesante es la forma en que se iniciaron. El administrador de base de datos llama al programa de activación de forma automática cada vez que se produce el evento de base de datos. En otras palabras, si asigna un desencadenador de inserción de un archivo, el programa desencadenante designado se llamará cada vez que se agrega un registro en el archivo. Hasta seis factores desencadenantes pueden ser asignados a un archivo, sino que podrán ser de seis programas diferentes o el mismo programa de seis veces, o puede optar por asignar un disparador para sólo algunas de las transacciones de bases de datos posibles. Los disparadores pueden ser asignados para agregar, actualizar y eliminar transacciones. En cada caso, no puede haber hasta dos disparadores: antes de un gatillo y un disparador después. Antes y después de referirse a la relación entre los factores desencadenantes y otros eventos de base de datos como referencial la comprobación de restricciones integridad y la escritura real del archivo (una inserción, actualización o eliminación). Estas relaciones pueden ser muy complejos. Para obtener más información, consulte el IBM Redbook, base de datos 2/400 Funciones de bases de datos avanzadas. Casi cualquier programa puede ser un desencadenante. Esto le da a los desencadenantes enorme poder y flexibilidad. Por supuesto, la otra cara de este poder es que, como el diseñador de la aplicación, usted es responsable de cómo se comporta el programa desencadenante. Usted puede escribir un programa de activación en cualquier lenguaje de alto nivel (por ejemplo, RPG, COBOL o C), y pueden contener sentencias de SQL incorporado. También puede escribir programas desencadenantes en CL. Un ejemplo simple de un disparador es un programa que faxes una confirmación de pedido cuando se añade un nuevo orden en el fichero de cabecera de la orden. He encontrado que la comprensión de cómo se asignan los desencadenantes y cómo se disparan es un primer paso importante en la incorporación de factores desencadenantes en un diseño de aplicaciones AS/400. Este artículo cubre los comandos que le permiten asignar, cambiar, eliminar y ver los factores desencadenantes. Con esta información, se puede crear una aplicación sencilla que activa un desencadenador. Por ejemplo, puede utilizar DFU para actualizar un archivo y activar un desencadenador que envía un mensaje a la cola de mensajes del usuario. Simplista que parezca, me ayudó a entender el potencial y los peligros de la utilización de los factores desencadenantes. Espero que va a hacer lo mismo para usted. Este es un programa desencadenante que puede utilizar para ver cómo funciona un disparador. PGM PARM (& INTERMEDIARIO Y buflen) DCL VAR (& buffer) TIPO (* CHAR) LEN (200) DCL VAR (& buflen) TIPO (* CHAR) LEN (4) DCL VAR (& USUARIO) TIPO (* CHAR) LEN (10) RTVJOBA USUARIO (y utilización) SNDPGMMSG MSGID (CPF9898) MSGF (QCPFMSG) + MSGDTA ('Este mensaje enviado desde TESTTRGPGM') + TOMSGQ (& USUARIO)

Transcript of DB2 Trigger

Page 1: DB2 Trigger

DB2/400 Implementación de disparo

DB2/400 Trigger Implementation

Una de las mejoras de bases de datos más importantes entregados en V3R1 es el soporte para disparadores. Un disparador es un programa que se adjunta a un evento de base de datos específica? Insertar, actualizar o eliminar un registro. Lo que hace que desencadena interesante es la forma en que se iniciaron. El administrador de base de datos llama al programa de activación de forma automática cada vez que se produce el evento de base de datos. En otras palabras, si asigna un desencadenador de inserción de un archivo, el programa desencadenante designado se llamará cada vez que se agrega un registro en el archivo.

Hasta seis factores desencadenantes pueden ser asignados a un archivo, sino que podrán ser de seis programas diferentes o el mismo programa de seis veces, o puede optar por asignar un disparador para sólo algunas de las transacciones de bases de datos posibles. Los disparadores pueden ser asignados para agregar, actualizar y eliminar transacciones. En cada caso, no puede haber hasta dos disparadores: antes de un gatillo y un disparador después.

Antes y después de referirse a la relación entre los factores desencadenantes y otros eventos de base de datos como referencial la comprobación de restricciones integridad y la escritura real del archivo (una inserción, actualización o eliminación). Estas relaciones pueden ser muy complejos. Para obtener más información, consulte el IBM Redbook, base de datos 2/400 Funciones de bases de datos avanzadas.

Casi cualquier programa puede ser un desencadenante. Esto le da a los desencadenantes enorme poder y flexibilidad. Por supuesto, la otra cara de este poder es que, como el diseñador de la aplicación, usted es responsable de cómo se comporta el programa desencadenante. Usted puede escribir un programa de activación en cualquier lenguaje de alto nivel (por ejemplo, RPG, COBOL o C), y pueden contener sentencias de SQL incorporado. También puede escribir programas desencadenantes en CL. Un ejemplo simple de un disparador es un programa que faxes una confirmación de pedido cuando se añade un nuevo orden en el fichero de cabecera de la orden.

He encontrado que la comprensión de cómo se asignan los desencadenantes y cómo se disparan es un primer paso importante en la incorporación de factores desencadenantes en un diseño de aplicaciones AS/400. Este artículo cubre los comandos que le permiten asignar, cambiar, eliminar y ver los factores desencadenantes. Con esta información, se puede crear una aplicación sencilla que activa un desencadenador. Por ejemplo, puede utilizar DFU para actualizar un archivo y activar un desencadenador que envía un mensaje a la cola de mensajes del usuario. Simplista que parezca, me ayudó a entender el potencial y los peligros de la utilización de los factores desencadenantes.  Espero que va a hacer lo mismo para usted. Este es un programa desencadenante que puede utilizar para ver cómo funciona un disparador.

PGM PARM (& INTERMEDIARIO Y buflen) DCL VAR (& buffer) TIPO (* CHAR) LEN (200) DCL VAR (& buflen) TIPO (* CHAR) LEN (4) DCL VAR (& USUARIO) TIPO (* CHAR) LEN (10) RTVJOBA USUARIO (y utilización) SNDPGMMSG MSGID (CPF9898) MSGF (QCPFMSG) + MSGDTA ('Este mensaje enviado desde TESTTRGPGM') + TOMSGQ (& USUARIO) ENDPGM

Se requieren los dos parámetros utilizados por el programa y se pasan automáticamente por el sistema operativo. Para que un programa tan simple como esto, no hay necesidad de hacer nada con ellos. En un próximo artículo, voy a hablar de los temas más complejos en la escritura de un programa de activación.

Los comandos de activaciónLos disparadores se asignan a un solo archivo con el comando de disparo del archivo físico Add (ADDPFTRG) se muestra en 1. Voy a explicar cada parámetro en detalle.Los disparadores se asignan a un solo archivo con el comando de disparo del archivo físico Add (ADDPFTRG) que se muestra en la Figura 1. Voy a explicar cada parámetro en detalle.

Page 2: DB2 Trigger

FILE: Este parámetro designa el archivo el gatillo está asociado.

TRGTIME: Tiempo de activación especifica cuando el programa de gatillo será llamado en relación con la escritura en el archivo. Los valores válidos son * ANTES y DESPUÉS *.

TRGEVENT: Este parámetro especifica el tipo de evento de base del gatillo está asociado. Las entradas válidas son INSERT * (agregar un registro en el archivo) *UPDATE (modificar un registro en el archivo) y * DELETE (borrar un registro del archivo).

PGM: Utilice este parámetro para especificar el programa que se llama cuando se produce el evento de disparo. El programa debe existir antes de que se le puede asignar a través del comando DDPFTRG. El parámetro TRGTIME determina el momento de la llamada.

RPLTRG: Utilice este parámetro opcional para reemplazar un disparador existente para el mismo evento de base de datos y el tiempo (por ejemplo, cambiar el gatillo antes de insertar un nuevo programa de activación). Esto permite ADDPFTRG para funcionar como una orden de cambio o bien un complemento o. El valor predeterminado es * NO. Si selecciona el valor * NO y un disparador ya existe para el evento y el tiempo especificado (por ejemplo, antes de insertar), el comando ADDPFTRG fallará.

TRGUPDCOND: Este parámetro opcional sólo se utiliza para la actualización de los factores desencadenantes. Si se establece en * CHANGE, el gatillo se dispara sólo si los datos del registro se modifica en realidad, si el registro se vuelve a escribir con los mismos valores que antes, el disparador no se dispara. El valor predeterminado es * SIEMPRE, lo que hace que el programa activador que se llama incluso cuando los datos no se modifica.

El gatillo todavía no se disparará si el registro no se escribe en realidad. Esto puede ocurrir si el programa que actualiza el archivo comprueba si los cambios se han hecho antes de emitir la cancelación del registro. Por ejemplo, DFU detecta si algún campo ha sido modificado y no escribir en el fichero si no se hicieron cambios. El resultado es que el gatillo no se disparará de DFU menos que los datos realmente se haya modificado? Incluso si TRGUPDCOND se establece en *ALWAYS.

El único otro comando OS/400 directamente asociado con factores desencadenantes es el (RMVPFTRG) comando disparador archivo físico Remove (ver 2). Este comando elimina un solo disparo, los factores desencadenantes de un archivo, o un grupo de disparadores relacionados.

El único otro comando de OS/400 directamente asociada con factores desencadenantes es el comando de disparo del archivo físico Quitar (RMVPFTRG) (véase la Figura 2). Este comando elimina un solo disparo, los factores desencadenantes de un archivo, o un grupo de disparadores relacionados.

Activadores DocumentaciónEl comando Archivo Descripción Display (DSPFD) incluye información gatillo si especifica TIPO (* ALL) o TYPE (* TRG). 3 contiene un ejemplo de un comando DSPFD que muestra la información de disparo.

El comando Archivo Descripción Display (DSPFD) incluye información gatillo si especifica TIPO (* ALL) o TYPE (* TRG). La figura 3 contiene un ejemplo de un comando DSPFD que muestra la información de disparo.

Para cada gatillo asignada al archivo (máximo seis), esta pantalla proporciona el nombre del programa de gatillo y la biblioteca se almacena en, el evento de disparo y el tiempo de activación (antes o después), y la condición de disparador de actualización (* SIEMPRE o * CHANGE), si procede.

DisparaLos factores desencadenantes son una de las mejores características de base de datos añaden a OS/400 V3R1 en. Os animo a empezar a experimentar con disparadores simples usando los comandos

Page 3: DB2 Trigger

que se presentan en este artículo. En futuros artículos, vamos a discutir las consideraciones de diseño para la asignación y escribir programas desencadenantes.

Sharon Hoffman es el editor de Midrange Computing.ReferenciasBase de datos 2/400 Funciones de bases de datos avanzadas (GG24-4249, CD-ROM GG244249).OS/400 CL referencia V3R1 (SC41-3722, CD-ROM QBKAUP00).OS/400 V3R1 DB2/400 Database Programming (SC41-3701, CD-ROM QBKAUC00).

DB2/400 Implementación de disparo

Figura 1: El comando ADDPFTRG

DB2/400 Implementación de disparo

Figura 2: El comando RMVPFTRG

Page 4: DB2 Trigger

DB2/400 Implementación de disparo

Figura 3: DSPFD Información disparo Incluyendo