Notas técnicas de AS/400 - Tips en breve Nro. 18 (Lo nuevo, lo escondido, o simplemente lo de siempre pero bien explicado) "Tips en breve/Tips en detalle" se envía con frecuencia variable y absolutamente sin cargo como un servicio a nuestros clientes AS/400. Contiene principalmente notas técnicas y no contiene mensajes publicitarios. Este mensaje se envía en concordancia con la nueva legislación sobre correo electrónico: Por sección 301,párrafo (a) (2) (c) de S.1618 bajo el decreto s.1618 titulo 3º aprobado por el 105 congreso base de las normativas internacionales sobre SPAM, este e-mail no podrá ser considerado SPAM mientras incluya una forma de ser removido Conteste este mail con asunto “REMOVER” si no desea recibir más esta publicación. Si desea suscribir otra dirección de e-mail para que comience a recibir los “Tips”, envíe un mensaje desde esa dirección a letter400@teknoda.com.ar, aclarando nombre, empresa y cargo del suscriptor. Acceso a archivos multimiembro en un entorno cliente/servidor o SQL. Tema: Base de datos Utilidad: Cómo manipular miembros de un archivo de datos distintos del primero (default), cuando se trabaja con accesos client/server, tipo SQL, ODBC, JDBC, NetData, etc.. Nivel: Intermedio y Avanzado Versión: V4.R3 en adelante Lista de Tips publicados hasta la fecha: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Modificación de los parámetros por default que rigen en los comandos del OS/400 Restricción de comandos pesados a modalidad batch Cómo generar un entorno de prueba para año 2000 Cómo salvar y restaurar spool Cómo agregar pantallas de confirmación/validación para comandos delicados Defragmentación del espacio en disco no utilizado : STRDSKRGZ, ENDDSKRGZ Manipulación de bases de datos desde programas CL, a través de Query/400 Generación de spool AS/400 en formato PDF (Adobe Acrobat Reader) para almacenar en CD´s Cómo proteger columnas de un archivo físico o lógico Cómo cambiar la pantalla de signon Cómo automatizar transferencias de archivos con TCP/IP desde AS/400 Control de accesos sobre archivos de spool Aproveche lo que ya tiene: FILE SERVING con NETSERVER/400 EMULACION 5250 vía Internet con lo que ya tiene instalado Editor alternativo: Comando EDTF (Edit File) Auditoría sobre objetos en AS/400 Cómo personalizar los comandos del menú de petición del sistema Temas de próximos tips: Guía básica de PTF´s e iPTF´s Auditoría de usuarios Resumen ejecutivo Los archivos de datos DB2/400 aceptan poseer más de un miembro de datos. Si el acceso a archivos multimiembro se hace desde herramientas tradicionales (DDS,CL, RPG, etc.) existen formas francas de direccionar un miembro determinado. En cambio, cuando se utilizan accesos tipo SQL, por ejemplo en un entorno client/Server, o desde la Web, o desde JAVA, deben implementarse otros recursos para elegir sobre cuál miembro se desea trabajar. A partir de OS/400 V4.3, el lenguaje SQL posee una sentencia CREATE ALIAS para crear un nombre alternativo para un archivo físico de datos asociado a un determinado miembro. El resultado de la ejecución de esta instrucción SQL es la creación de un objeto de tipo *FILE con atributo DDMF. El comando CL Override Database File (OVRDBF) también permite al administrador de base de datos procesar miembros individuales de un archivo de base de datos, desde una línea de comandos, desde un programa o con una llamada a QCMDEXC. Sin embargo, el método del ALIAS es más adecuado para estos casos. Introducción Los archivos de datos DB2/400 (*FILE PF-DTA) almacenan registros conteniéndolos dentro de un miembro de datos. DB2/400 soporta los llamados archivos multimiembro, es decir, este tipo de objeto acepta poseer más de un miembro de datos para contener otro subconjunto de registros del mismo formato (otra sucursal, otro año fiscal, etc.). Cuando se manipulan registros de un archivo, por omisión el sistema accede a los registros del primer miembro (aquél de fecha de creación más temprana). Si el acceso a un archivo multimiembro se hace desde herramientas tradicionales (mandatos CL, DDS RPG, etc.) existen formas francas de direccionar un miembro determinado. En cambio, cuando se utilizan accesos tipo SQL, por ejemplo desde un sistema cliente, o desde la Web, o desde JAVA, deben implementarse otros recursos para elegir sobre cuál miembro se desea trabajar. Básicamente esto se logra a través de la creación de ALIAS o el uso del OVRDBF. SQL y la creación de Alias A partir de OS/400 V4.3, el lenguaje SQL posee una sentencia CREATE ALIAS para crear un nombre alternativo para un archivo físico de datos y un determinado miembro. El resultado de la ejecución de esta instrucción SQL es la creación de un objeto de tipo *FILE con atributo DDMF. Es importante observar que el efecto de la ejecución de este comando no es temporario, sino que genera un objeto en una determinada biblioteca al que podrá referirse como un archivo físico de datos independiente en cualquier momento desde un cliente utilizando ODBC, por ejemplo desde MS-Access o desde Excel. Las siguientes sentencias son ejemplos de creación de Alias: 1) CREATE ALIAS tekdb2.pruebas FOR tekdb2.movim Dónde tekdb2.pruebas es el nombre del alias (*FILE DDMF que se genera), y tekdb2.movim es el archivo *FILE PF-DTA en el cual se basa. Como no se especifican datos del miembro, apunta al de fecha de creación más antigua. 2) CREATE ALIAS tekdb2.vent_enero FOR tekdb2.ventas(enero) Dónde tekdb2. vent_enero es el nombre del alias (*FILE DDMF que se genera), y tekdb2. ventas(enero) es el archivo *FILE PF-DTA en el cual se basa, y enero el nombre del miembro del archivo. Para crear un alias, pueden utilizarse diferentes entornos: a) Desde pantalla verde, invocando al comando STRSQL. b) Desde Operations Navigator, a través del item Base de datos. Independientemente de la interfaz usada para la creación de alias, el objeto generado es siempre un *FILE DDMF en la biblioteca indicada. Creación de un alias usando STRSQL Para crear un alias desde “pantalla verde” realizar los siguientes pasos: 1) Iniciar una sesión interactiva, e ingresar el comando STRSQL. 2) Presionar F4 para obtener la lista de comandos SQL permitidos. 3) Seleccionar la opción 6, CREATE ALIAS, y presionar Intro. 4) Indicar el nombre del alias y la biblioteca donde se lo almacenará. También especificar el nombre calificado del archivo, y sobre cual miembro operará. Luego presionar Intro. Cuando se crea un alias de la manera detallada anteriormente, la autorización *PUBLIC para el objeto *FILE DDMF surge del parámetro CRTAUT de la biblioteca que lo contendrá. Creación de un alias usando Operations Navigator Para crear un alias desde Operations Navigator realizar los siguientes pasos: 1) Iniciar una sesión con Operations Navigator . 2) Sobre el item Base de datos, presionar botón derecho. 3) Elegir Ejecutar scripts SQL. 4) Ingresar la sentencia SQL que permite crear un alias. Como ayuda se puede utilizar el combo box “Ejemplo sentencias SQL”, seleccionar la sentencia e insertar. La siguiente ventana muestra la sentencia CREATE ALIAS y un posterior uso con la sentencia SELECT. Cuando se crea un alias de la manera detallada anteriormente, la autorización *PUBLIC para el objeto *FILE DDMF es *EXCLUDE. Luego de la creación, se puede hacer referencia al alias como al nombre de cualquier archivo físico. Seleccionando el miembro a utilizar con OVRDBF El comando CL Override Database File (OVRDBF) también permite al administrador de base de datos procesar miembros individuales de un archivo de base de datos. Sin embargo, crear un alias sobre un miembro de un archivo físico es más fácil y trabaja mejor al eliminar la necesidad de realizar un override. Además, las alteraciones temporales deben invocarse cada vez que se las desee utilizar. La manera de acceder a un miembro determinado de un archivo físico usando la alternativa OVRDBF puede ser desde una línea de comandos, desde un programa o con una llamada a QCMDEXC como la siguiente, (ya sea desde la línea de comandos SQL, o como sentencia dentro de un script SQL con la interfaz Operations Navigator), para ser invocada desde un cliente: CALL QSYS/QCMDEXC(‘OVRDBF FILE(MOVIM) MBR(MOVIM1) OVRSCOPE(*JOB)’, 0000000045,00000) , donde el segundo parámetro (el número) es la longitud del primer parámetro en formato 15,5 (todos los 0’s tienen que estar). Para tener en cuenta... A un archivo físico de datos multimiembro no se le pueden definir restricciones referenciales. Si un archivo físico tiene definidas restricciones referenciales, no va a poder tener más de un miembro de datos. Los archivos físicos aceptan por default, como máximo, un solo miembro de datos. Para agregar un nuevo miembro, debe modificarse con el comando CHGPF el atributo Máximo de miembros de “1” a un valor determinado o “*NOMAX” y luego crear el miembro con ADDPFM. En la pantalla “Trabajar con miembros utilizando PDM”, cuando se visualizan los miembros de un archivo físico de datos, la fecha que acompaña al nombre del miembro representa la correspondiente al último cambio. Para ver la fecha de creación, utilizar la opción 8 (Visualizar descripción). El usuario que emite la sentencia CREATE ALIAS debe tener autorización *USE para el comando CRTDDMF (que se ejecuta indirectamente al crear un alias) aunque el usuario no tenga que ejecutar directamente este comando. Si bien al crear el alias se genera un objeto *FILE DDMF, si se expande la biblioteca que lo contiene desde el Operations Navigator, en el item Base de Datos, se lo distinguirá como tipo Alias. Copyright 2001 Teknoda S.A. - AS/400 y OS/400 son marcas registradas de IBM. Dudas o consultas a gmperez@teknoda.com.ar o nsalmun@teknoda.com.ar