Sie sind auf Seite 1von 4

DB2/400 Implementacin de disparo DB2/400 Trigger Implementation Una de las mejoras de bases de datos ms importantes entregados en V3R1 es el soporte

para disparadores. Un disparador es un programa que se adjunta a un evento de base de datos especfica? 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 activacin de forma automtica cada vez que se produce el evento de base de datos. En otras palabras, si asigna un desencadenador de insercin 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 podrn ser de seis programas diferentes o el mismo programa de seis veces, o puede optar por asignar un disparador para slo 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 despus. Antes y despus de referirse a la relacin entre los factores desencadenantes y otros eventos de base de datos como referencial la comprobacin de restricciones integridad y la escritura real del archivo (una insercin, actualizacin o eliminacin). Estas relaciones pueden ser muy complejos. Para obtener ms informacin, 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 diseador de la aplicacin, usted es responsable de cmo se comporta el programa desencadenante. Usted puede escribir un programa de activacin en cualquier lenguaje de alto nivel (por ejemplo, RPG, COBOL o C), y pueden contener sentencias de SQL incorporado. Tambin puede escribir programas desencadenantes en CL. Un ejemplo simple de un disparador es un programa que faxes una confirmacin de pedido cuando se aade un nuevo orden en el fichero de cabecera de la orden. He encontrado que la comprensin de cmo se asignan los desencadenantes y cmo se disparan es un primer paso importante en la incorporacin de factores desencadenantes en un diseo de aplicaciones AS/400. Este artculo cubre los comandos que le permiten asignar, cambiar, eliminar y ver los factores desencadenantes. Con esta informacin, se puede crear una aplicacin sencilla que activa un desencadenador. Por ejemplo, puede utilizar DFU para actualizar un archivo y activar un desencadenador que enva un mensaje a la cola de mensajes del usuario. Simplista que parezca, me ayud a entender el potencial y los peligros de la utilizacin de los factores desencadenantes. Espero que va a hacer lo mismo para usted. Este es un programa desencadenante que puede utilizar para ver cmo 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 utilizacin) SNDPGMMSG MSGID (CPF9898) MSGF (QCPFMSG) + MSGDTA ('Este mensaje enviado desde TESTTRGPGM') + TOMSGQ (& USUARIO) ENDPGM Se requieren los dos parmetros utilizados por el programa y se pasan automticamente por el sistema operativo. Para que un programa tan simple como esto, no hay necesidad de hacer nada con ellos. En un prximo artculo, voy a hablar de los temas ms complejos en la escritura de un programa de activacin. Los comandos de activacin Los disparadores se asignan a un solo archivo con el comando de disparo del archivo fsico Add (ADDPFTRG) se muestra en 1. Voy a explicar cada parmetro en detalle.

Los disparadores se asignan a un solo archivo con el comando de disparo del archivo fsico Add (ADDPFTRG) que se muestra en la Figura 1. Voy a explicar cada parmetro en detalle. FILE: Este parmetro designa el archivo el gatillo est asociado. TRGTIME: Tiempo de activacin especifica cuando el programa de gatillo ser llamado en relacin con la escritura en el archivo. Los valores vlidos son * ANTES y DESPUS *. TRGEVENT: Este parmetro especifica el tipo de evento de base del gatillo est asociado. Las entradas vlidas 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 parmetro 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 travs del comando DDPFTRG. El parmetro TRGTIME determina el momento de la llamada. RPLTRG: Utilice este parmetro 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 activacin). 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 parmetro opcional slo se utiliza para la actualizacin de los factores desencadenantes. Si se establece en * CHANGE, el gatillo se dispara slo 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 todava 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 cancelacin del registro. Por ejemplo, DFU detecta si algn 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 fsico 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 fsico Quitar (RMVPFTRG) (vase la Figura 2). Este comando elimina un solo disparo, los factores desencadenantes de un archivo, o un grupo de disparadores relacionados. Activadores Documentacin El comando Archivo Descripcin Display (DSPFD) incluye informacin gatillo si especifica TIPO (* ALL) o TYPE (* TRG). 3 contiene un ejemplo de un comando DSPFD que muestra la informacin de disparo. El comando Archivo Descripcin Display (DSPFD) incluye informacin gatillo si especifica TIPO (* ALL) o TYPE (* TRG). La figura 3 contiene un ejemplo de un comando DSPFD que muestra la informacin de disparo. Para cada gatillo asignada al archivo (mximo seis), esta pantalla proporciona el nombre del programa de gatillo y la biblioteca se almacena en, el evento de disparo y el tiempo de activacin (antes o despus), y la condicin de disparador de actualizacin (* SIEMPRE o * CHANGE), si procede.

Dispara Los factores desencadenantes son una de las mejores caractersticas de base de datos aaden a OS/400 V3R1 en. Os animo a empezar a experimentar con disparadores simples usando los comandos que se presentan en este artculo. En futuros artculos, vamos a discutir las consideraciones de diseo para la asignacin y escribir programas desencadenantes. Sharon Hoffman es el editor de Midrange Computing. Referencias Base 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 Implementacin de disparo

Figura 1: El comando ADDPFTRG

DB2/400 Implementacin de disparo

Figura 2: El comando RMVPFTRG

DB2/400 Implementacin de disparo

Figura 3: DSPFD Informacin disparo Incluyendo

Das könnte Ihnen auch gefallen