Bienvenidos a Iseries Venezuela

Las mejores prácticas, recursos, tips, enlaces, videos y artículos para informáticos relacionados con el Iseries y el As/400 lenguajes de programación RPG, ILE RPG y SQL.

The best practices, resources, tips, links, videoes and articles for computer related to the Iseries and the As/400 languages of programming RPG, ILE RPG and SQL.

Wednesday, November 4, 2009

SQLRPG para Eliminar Registros de un Archivo















 Con el fin de optimizar nuestros programas y el tiempo de respuesta de nuestros procesos, vamos a publicar una series de tips y articulos relacionados con el SQL en sus distintas presentaciones, hoy comenzamos con algo sencillo enmarcado en el RPG como lenguaje anfitrion de SQL. Borramos los registros de un archivo que cumplen con una condición. En este ejemplo queremos eliminar los registros cuya fecha de proceso sea menor a una fecha enviada por parámetro al programa SQLRPG



Código SQLRPG

C *Entry PList
C Parm varfec 80 (variable numérica de 8 posiciones y cero decimales)
C*
C/Exec Sql
C+ DELETE FROM ARCHIVO
C+ WHERE FECPRO <= :VARFEC
C/end-Exec


Para archivos de más de 4000.000 de registros esta instrucción puede tardar hasta 10 minutos. Con un RPG que utiliza un Read y un IF dentro del lazo de lectura, el proceso tarda hasta 1 hora y 20 minutos. Para compilar este programa, debe colocarse *NONE en el parámetro que corresponde al control de compromiso COMMIT, si no hemos creado un Journal sobre el archivo. Crear un Journal sobre el archivo le da al sistema operativo la posibilidad de revertir en forma automática el borrado de los archivos en caso de que así se requiera. Si el programa no compila revisa si colocaste correctamente este parámetro.

Crear o no un Journal a los archivos queda a criterio a las normativas de la Gerencia de Sistemas.

A continuación el parámetro de compilación.

 Crear objeto RPG ILE SQL (CRTSQLRPGI)

Teclee elecciones, pulse Intro.
 Objeto . . . . . . . . . . . . . . . . . . . . PROGRAMA
 Nombre Biblioteca . . . . . . . . . . . .LIBRERIA Nombre, *CURLIB
 Archivo fuente . . . . . . . . . . . . . . QRPGLESRC Nombre, QRPGLESRC

 Biblioteca . . . . . . . . . . . . . . . .  . .LIBFTES Nombre, *LIBL, *CURLIB
 Miembro fuente . . . . . . . . . . . . . .PROGRAMA Nombre, *OBJ
 Control de compromiso . . . . . . . .*NONE *CHG, *ALL, *CS, *NONE...
 Base de datos relacional . . . .  . . . *LOCAL
 Tipo de compilación . . . . . .  . . . .*PGM *PGM, *SRVPGM, *MODULE
 Salida del listado . . . . . . . . . . . . . *NONE *NONE, *PRINT
Texto descriptivo . . . . . . . . . . . . *SRCMBRTXT

En el próximo articulos continuaremos optimizando los tiempos de respuesta de de programación con SQL.

Si te pareció interesante, reenvialo a un amigo haciendo click en el sobrecito que está al final del artículo. El conocimiento es valioso, compártelo.


Autor: Ing. Liliana Suárez

No comments: