300
DB2 Query Management Facility Versión 11 Release 1 Developing DB2 QMF applications SC11-8459-00

Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DB2 Query Management FacilityVersión 11 Release 1

Developing DB2 QMF applications

SC11-8459-00

���

Page 2: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones
Page 3: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DB2 Query Management FacilityVersión 11 Release 1

Developing DB2 QMF applications

SC11-8459-00

���

Page 4: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

NotaAntes de utilizar esta información y el producto al que da soporte, consulte la información general que se encuentra en“Avisos” al final de esta información.

Esta edición se aplica a la Versión 11 Release 1 de IBM DB2 Query Management Facility (QMF) Classic Edition yEnterprise Edition, que son características de IBM DB2 11 para z/OS (5615-DB2). Esta información se aplica tambiéna la Versión 11 Release 1 de IBM DB2 QMF Classic Edition Value Unit Edition (VUE) y IBM DB2 QMF EnterpriseEdition Value Unit Edition (VUE), que son características de IBM DB2 11 para z/OS Value Unit Edition (5697-P43).Esta información también se aplica a todos los releases y las modificaciones posteriores, hasta que se indique locontrario en nuevas ediciones.

© Copyright IBM Corporation 1982, 2013.

Page 5: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Contenido

Acerca de este manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viiConocimientos necesarios antes de empezar . . . . . . . . . . . . . . . . . . . . . . . . viiActualizaciones de servicio e información de soporte . . . . . . . . . . . . . . . . . . . . . viiiConvenios de resaltado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viiiCómo leer los diagramas de sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . viiiCómo buscar explicaciones de mensajes . . . . . . . . . . . . . . . . . . . . . . . . . . xCómo enviar comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x

Capítulo 1. Visión general del desarrollo de aplicaciones de QMF . . . . . . . . . . . 1¿Qué significa es desarrollo de aplicaciones en QMF?. . . . . . . . . . . . . . . . . . . . . . 1¿Cómo pueden utilizar la aplicación los usuarios? . . . . . . . . . . . . . . . . . . . . . . . 1

Cómo interactuar con la aplicación principalmente . . . . . . . . . . . . . . . . . . . . . 1Inicio de la aplicación desde una sesión de QMF . . . . . . . . . . . . . . . . . . . . . . 2

¿Qué herramientas de desarrollo de aplicaciones de QMF hay disponibles? . . . . . . . . . . . . . . 3Procedimientos de QMF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Interfaces de programación de aplicaciones de QMF . . . . . . . . . . . . . . . . . . . . . 4

Convenios de la información sobre la característica de idioma nacional . . . . . . . . . . . . . . . . 5

Capítulo 2. Procedimientos como aplicaciones . . . . . . . . . . . . . . . . . . . 7Procedimientos iniciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7El mandato CONNECT de QMF con un procedimiento . . . . . . . . . . . . . . . . . . . . . 9Variables de sustitución en procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . 10

Especificación de valores en el mandato RUN . . . . . . . . . . . . . . . . . . . . . . . 10Especificación de valores en el panel de solicitud del mandato RUN . . . . . . . . . . . . . . . 11

Variables de REXX en procedimientos con lógica . . . . . . . . . . . . . . . . . . . . . . . 12Cómo pasar argumentos a un procedimiento con lógica . . . . . . . . . . . . . . . . . . . . 12Sentencias de manejo de errores de REXX en procedimientos con lógica . . . . . . . . . . . . . . . 13

Ramificación hacia subrutinas de manejo de errores . . . . . . . . . . . . . . . . . . . . . 13Mensajes con la sentencia EXIT de REXX . . . . . . . . . . . . . . . . . . . . . . . . 13

Invocación de programas REXX desde un procedimiento con lógica . . . . . . . . . . . . . . . . 14Cómo llamar a programas de REXX sin variables de sustitución . . . . . . . . . . . . . . . . . 15Cómo llamar a programas de REXX que contienen variables de sustitución . . . . . . . . . . . . . 15

Capítulo 3. La interfaz invocable y aplicaciones de QMF . . . . . . . . . . . . . . 17¿Qué es la interfaz invocable? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Consideraciones para utilizar la interfaz invocable de QMF . . . . . . . . . . . . . . . . . . . 17El área de comunicaciones de la interfaz (DSQCOMM) . . . . . . . . . . . . . . . . . . . . . 18Códigos de retorno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Mandatos para utilizar la interfaz invocable . . . . . . . . . . . . . . . . . . . . . . . . 21Inicio de QMF desde una aplicación . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Ejecución de la aplicación de la interfaz invocable . . . . . . . . . . . . . . . . . . . . . . 22La interfaz invocable en QMF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Manejo de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Ejecución de programas de interfaz invocable en CICS . . . . . . . . . . . . . . . . . . . . . 23

Capítulo 4. Emisión de mandatos de QMF desde un diálogo ISPF . . . . . . . . . . 25Escritura de un programa que utilice la interfaz de mandatos: un ejemplo . . . . . . . . . . . . . . 25Invocación de la interfaz de mandatos . . . . . . . . . . . . . . . . . . . . . . . . . . 26El mandato END . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Variables en la interfaz de mandatos . . . . . . . . . . . . . . . . . . . . . . . . . . . 27Códigos de retorno de la interfaz de mandatos . . . . . . . . . . . . . . . . . . . . . . . 27

© Copyright IBM Corp. 1982, 2013 iii

Page 6: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 5. ADDRESS QRW y el entorno de mandatos de QMF . . . . . . . . . . . 31

Capítulo 6. Escritura de aplicaciones QMF que utilizan servicios ISPF . . . . . . . . 33Inicio y ejecución de QMF desde una aplicación ISPF . . . . . . . . . . . . . . . . . . . . . 33Ejecución de consultas que contienen variables . . . . . . . . . . . . . . . . . . . . . . . 34Inicio de un programa que utiliza servicios ISPF desde dentro de QMF . . . . . . . . . . . . . . . 35Servicios ISPF en un procedimiento con lógica. . . . . . . . . . . . . . . . . . . . . . . . 35El mandato EDIT con ISPF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Aplicaciones de depuración e ISPF . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Capítulo 7. Escritura de aplicaciones bilingües . . . . . . . . . . . . . . . . . . 39Comparación del inglés con los entornos de característica de idioma nacional . . . . . . . . . . . . . 39Creación de objetos para utilizarlos en aplicaciones bilingües . . . . . . . . . . . . . . . . . . . 41La variable de idioma de los mandatos . . . . . . . . . . . . . . . . . . . . . . . . . . 41Procedimientos iniciales en aplicaciones bilingües . . . . . . . . . . . . . . . . . . . . . . 42Mandatos sólo en inglés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Entornos multilingües . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43Creación de aplicaciones traducibles . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Capítulo 8. Mandatos de QMF en aplicaciones. . . . . . . . . . . . . . . . . . . 45Mandatos diseñados para aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 45

CONNECT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45FIN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46SALIR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46GET GLOBAL (sintaxis ampliada) . . . . . . . . . . . . . . . . . . . . . . . . . . . 47INTERACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48MESSAGE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50SET GLOBAL (sintaxis ampliada) . . . . . . . . . . . . . . . . . . . . . . . . . . . 53START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55TRACE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Mandatos que pueden utilizarse en una minisesión del informe RUN QUERY . . . . . . . . . . . . . 68Sinónimos de mandato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Capítulo 9. Exportación e importación de objetos . . . . . . . . . . . . . . . . . 73Qué se puede hacer un con archivo de UNIX exportado, un conjunto de datos de TSO o una cola de datos deCICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Exportación frente a guardado de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 74Exportación de objetos de datos y tablas de base de datos . . . . . . . . . . . . . . . . . . . . 74

Exportación de datos o tablas en formato de QMF . . . . . . . . . . . . . . . . . . . . . 75Exportación de datos o tablas en formato IXF . . . . . . . . . . . . . . . . . . . . . . . 82Exportación de datos o tablas en formato XML . . . . . . . . . . . . . . . . . . . . . . 98Exportación de datos o tablas en formato CSV . . . . . . . . . . . . . . . . . . . . . . 101Reglas e información para exportar e importar tablas y objetos de datos. . . . . . . . . . . . . . 102

Exportación de formularios, informes y consultas asistidas . . . . . . . . . . . . . . . . . . . 103Formato general del archivo de exportado. . . . . . . . . . . . . . . . . . . . . . . . 103Exportación de un formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Consideraciones sobre los objetos de formulario de QMF en aplicaciones . . . . . . . . . . . . . 123Exportación de un informe estándar . . . . . . . . . . . . . . . . . . . . . . . . . . 124Exportación de un informe en formato HTML . . . . . . . . . . . . . . . . . . . . . . 128Exportación de un informe de estilo transversal . . . . . . . . . . . . . . . . . . . . . . 129Exportación de una consulta asistida . . . . . . . . . . . . . . . . . . . . . . . . . 131Cómo asegurarse de que la consulta asistida exportada tiene un formato válido . . . . . . . . . . . 139

Importación de formularios y consultas asistidas . . . . . . . . . . . . . . . . . . . . . . 140Procedimientos y consultas SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141Gráficas basadas en formularios y consultas QBE . . . . . . . . . . . . . . . . . . . . . . 142Especificación de tamaño de objetos externalizados. . . . . . . . . . . . . . . . . . . . . . 142Consideraciones de almacenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . 144

Colas de datos de CICS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Conjuntos de datos de TSO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

iv Developing DB2 QMF applications

||

||

Page 7: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 10. Depuración de las aplicaciones de QMF . . . . . . . . . . . . . . . 147Depuración de las aplicaciones de interfaz invocable . . . . . . . . . . . . . . . . . . . . . 147

La opción L de rastreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147La opción A del rastreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Desactivación del rastreo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148Asignación de la salida de datos de rastreo de QMF . . . . . . . . . . . . . . . . . . . . 149El mandato MESSAGE de QMF para el rastreo . . . . . . . . . . . . . . . . . . . . . . 149

Errores en START u otros mandatos de QMF . . . . . . . . . . . . . . . . . . . . . . . . 150

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfazinvocable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151Interfaz de lenguaje de Assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Correlación de área de comunicaciones de interfaz de Assembler (DSQCOMMA). . . . . . . . . . . 151Llamadas a función del lenguaje Assembler . . . . . . . . . . . . . . . . . . . . . . . 152Ejemplo de programación de Assembler . . . . . . . . . . . . . . . . . . . . . . . . 154DSQCOMM para Assembler . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Ejecución de programas de Assembler en CICS . . . . . . . . . . . . . . . . . . . . . . 162Ejecución de programas de Assembler en TSO . . . . . . . . . . . . . . . . . . . . . . 163

Intarfaz de lenguaje C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Correlación del área de comunicaciones de la interfaz del lenguaje C (DSQCOMMC) . . . . . . . . . 165Llamadas a función del lenguaje C . . . . . . . . . . . . . . . . . . . . . . . . . . 166Ejemplo de programación de lenguaje C . . . . . . . . . . . . . . . . . . . . . . . . 168DSQCOMM para C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170Ejecución de programas C en CICS . . . . . . . . . . . . . . . . . . . . . . . . . . 172Ejecución de programas C en TSO . . . . . . . . . . . . . . . . . . . . . . . . . . 173

Interfaz de lenguaje de COBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Correlación del área de comunicaciones de la interfaz de COBOL (DSQCOMMB) . . . . . . . . . . 175Llamadas a función de COBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . 176El servicio LIBDEF ISPF con COBOL . . . . . . . . . . . . . . . . . . . . . . . . . 177Ejemplo de programación de COBOL . . . . . . . . . . . . . . . . . . . . . . . . . 177DSQCOMM para COBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Consideraciones acerca de la ejecución del programa de la interfaz invocable de COBOL . . . . . . . . 181Ejecución de programas de COBOL en CICS . . . . . . . . . . . . . . . . . . . . . . . 181Ejecución de programas de COBOL en TSO . . . . . . . . . . . . . . . . . . . . . . . 182

Interfaz de lenguaje Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184Correlación del área de comunicaciones de la interfaz de Fortran (DSQCOMMF) . . . . . . . . . . . 184Llamadas a función para Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Ejemplo de programación de Fortran . . . . . . . . . . . . . . . . . . . . . . . . . 187DSQCOMM para Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Ejecución de programas Fortran . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

Interfaz de lenguaje PL/I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Correlación del área de comunicaciones de la interfaz de PL/I (DSQCOMML) . . . . . . . . . . . 194Llamadas a función para PL/I. . . . . . . . . . . . . . . . . . . . . . . . . . . . 195Ejemplo de programación de PL/I . . . . . . . . . . . . . . . . . . . . . . . . . . 197DSQCOMM para PL/I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Ejecución de programas bajo CICS . . . . . . . . . . . . . . . . . . . . . . . . . . 201Ejecución de programas bajo TSO . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Interfaz de lenguaje de REXX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204Variables de comunicaciones de interfaz de REXX . . . . . . . . . . . . . . . . . . . . . 204Llamada a función de REXX . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205Ejemplo de programación de REXX . . . . . . . . . . . . . . . . . . . . . . . . . . 206Ejecución de programas REXX. . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Ejemplo de REXX de utilización de un bucle INTERACT . . . . . . . . . . . . . . . . . . . 208

Apéndice A. Macros de interfaz de producto . . . . . . . . . . . . . . . . . . . 211

Apéndice B. Variables globales de QMF . . . . . . . . . . . . . . . . . . . . . 213Convenio de denominación de las variables globales de QMF . . . . . . . . . . . . . . . . . . 213Configuración y visualización de valores para variables globales . . . . . . . . . . . . . . . . . 214Variables globales para información de estado no relacionada con el perfil . . . . . . . . . . . . . . 215

Contenido v

Page 8: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Variables globales para información de estado relacionada con el perfil . . . . . . . . . . . . . . . 220Variables globales asociadas con CICS . . . . . . . . . . . . . . . . . . . . . . . . . . 221Variables globales relacionadas con un mensaje producido por el mandato más reciente . . . . . . . . . 222Variables globales asociadas con el Editor de tablas. . . . . . . . . . . . . . . . . . . . . . 223Variables globales que controlan varias visualizaciones . . . . . . . . . . . . . . . . . . . . 225Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos . . . . . . . . . . 230Variables globales que almacenan los resultados de CONVERTIR CONSULTA. . . . . . . . . . . . . 244Variables globales que muestran información de los mensajes de error de EJECUTAR CONSULTA . . . . . . 245Variables globales que almacenan valores de entrada de panel . . . . . . . . . . . . . . . . . . 245

Avisos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257Información de la interfaz de programación . . . . . . . . . . . . . . . . . . . . . . . . 258Marcas registradas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

Glosario de términos y acrónimos . . . . . . . . . . . . . . . . . . . . . . . 261

Índice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

vi Developing DB2 QMF applications

||

Page 9: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Acerca de este manual

IBM® DB2 Query Management Facility para TSO y CICS es una herramientaaltamente integrada, potente y fiable que proporciona funciones de consulta ycreación de informes que le ayudan a acceder a datos y presentarlos desdecualquiera de las siguientes bases de datos relacionales:v DB2 para z/OSv DB2 para Linux, UNIX y Windowsv DB2 para iSeriesv DB2 Server para VSE y VM

Esta información está escrita para los programadores de aplicaciones que seocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temasle ayudan a:v Tomar decisiones para el diseño de programación de aplicacionesv Elegir entre distintas técnicas de programaciónv Entender cómo utilizar las interfaces de mandatos e invocables de QMFv Escribir aplicaciones bilingües

Se facilitan ejemplos de programación específicos de Assembler, C, FORTRAN,COBOL, PL/I y REXX.

Conocimientos necesarios antes de empezarDebe estar familiarizado con los componentes que constituyen su entornoespecífico, además de con algunos conceptos y términos antes de iniciar laprogramación de la aplicación de QMF.

Productos

Para desarrollar aplicaciones para QMF, es posible que deba familiarizarse conalgunos o todos los siguientes productos, en función del entorno y de lasnecesidades empresariales:v El sistema operativo z/OS.v DB2, el gestor de bases de datos de QMF.v Time Sharing Option(TSO), que es un entorno que da soporte a DB2 QMF y a

sus productos relacionados.v Interactive System Productivity Facility (ISPF), un gestor de diálogos de DB2

QMF.v Customer Information Control System(CICS), un sistema de proceso de

transacción en línea y de comunicación de datos de uso general. CICSproporciona la interfaz entre DB2 QMF yz/OS.

v El producto Graphical Data Display Manager (GDDM) base, que es necesariopara visualizar paneles y crear diagramas. También puede utilizar GDDM paraproporcionar servicios de impresión deQMF.

v Assembler, C, COBOL, FORTRAN, PL/I o REXX, que puede utilizar para crearaplicaciones de interfaz invocable de QMF.

© Copyright IBM Corp. 1982, 2013 vii

Page 10: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Conceptos

Las aplicaciones de QMF permiten trabajar con objetos de QMF y realizarfunciones de QMF desde un programa de aplicación escrito en uno de loslenguajes a los que QMF da soporte. Esta información presupone que ya sabeescribir consultas y procedimientos, formatear informes y modificar la base dedatos.Información relacionada:

El Centro de publicaciones de IBMBúsqueda de publicaciones que explican los productos.

Actualizaciones de servicio e información de soportePara buscar actualizaciones de servicio e información de soporte técnico, tal comofixpacks del software, PTF, las preguntas más frecuentes (FAQ), notas técnicas,información sobre resolución de problemas y descargas de software, consulte lapágina web siguiente:

Sitio web de soporte de software de IBM

Convenios de resaltadoEsta información utiliza los siguientes convenios de resaltado:v El tipo Negrita indica mandatos o controles de interfaz de usuario, tales como

nombres de campos, carpetas, iconos u opciones de menú.v El tipo monoespaciado indica ejemplos de texto que se entran exactamente igual

a como se muestran.v Cursiva indica los títulos de otras publicaciones o hace hincapié en términos

importantes. También se utiliza para indicar variables que debe sustituir por unvalor.

Cómo leer los diagramas de sintaxisLas siguientes normas se aplican a los diagramas de sintaxis que se utilizan en estainformación:v Los diagramas de sintaxis se leen de izquierda a derecha y de arriba abajo,

siguiendo el trazado de la línea. Se utilizan los siguientes convenios:– El símbolo >>--- indica el inicio de un diagrama de sintaxis.– El símbolo ---> indica que el diagrama de sintaxis continúa en la línea

siguiente.– El símbolo >--- indica que el diagrama de sintaxis viene de la línea anterior.– El símbolo --->< indica el final de un diagrama de sintaxis.

v Los elementos necesarios se muestran en la línea horizontal (la vía principal).

�� elemento_necesario ��

v Los elementos opcionales se muestran por debajo de la vía principal.

�� elemento_necesarioelemento_opcional

��

viii Developing DB2 QMF applications

Page 11: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Si aparece un elemento opcional encima de la vía de acceso principal, eseelemento no tiene ningún efecto en la ejecución del elemento de sintaxis y seutiliza sólo para facilitar la lectura.

��elemento_opcional

elemento_necesario ��

v Si se puede elegir entre dos elementos o más, éstos se muestran verticalmente,en una pila.Si es debe elegir uno de estos elementos, un elemento de la pila aparecerá en lavía principal.

�� elemento_necesario opción_necesaria1opción_necesaria2

��

Si la elección de uno de los elementos es opcional, toda la pila aparecerá pordebajo de la vía principal.

�� elemento_necesarioopción_opcional_1opción_opcional_2

��

Si uno de estos elementos es el valor predeterminado aparecerá encima de la víade acceso principal y las otras opciones se muestran debajo.

�� elemento_necesarioopción_por_omisión

opción_opcionalopción_opcional

��

v Una flecha que vuelve a la izquierda, encima de la línea principal, indica unelemento que puede repetirse.

�� elemento_necesario � elemento_repetible ��

Si la flecha de repetición contiene una coma, debe separar los elementosrepetidos con una coma.

�� elemento_necesario �

,

elemento_repetible ��

Una fecha de repetición encima de una pila indica que puede repetir loselementos de la pila.

v Las palabras clave y, si procede, sus abreviaciones mínimas, aparecen enmayúsculas. Deben escribirse exactamente como se muestran. Las variablesaparecen todas en minúsculas y cursiva (por ejemplo, nombre-columna).Representan valores o nombres proporcionados por el usuario.

v Separe las palabras clave y los parámetros como mínimo con un espacio si nohay ningún signo de puntuación, tal como se muestra en el diagrama.

v Escriba signos de puntuación, paréntesis, operadores aritméticos y otrossímbolos exactamente igual a como se muestra en el diagrama.

Acerca de este manual ix

Page 12: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Las notas a pie de página se muestran con un número entre paréntesis; porejemplo, (1).

Cómo buscar explicaciones de mensajesPuede utilizar cualquiera de los métodos siguientes para buscar mensajes ycódigos.

Búsqueda de un Information Center

En el recuadro de búsqueda situado en la barra de herramientas de la partesuperior izquierda de cualquier sistema de ayuda Eclipse, comoInformation Center de IBM Information Management Software for z/OS Solutions,escriba el número del mensaje que desea localizar. Por ejemplo, puede especificarDFS1065A en el campo de búsqueda.

Las siguientes sugerencias le ayudarán a mejorar las búsquedas de mensajes:v Puede buscar información sobre códigos entrando el código; por ejemplo, escriba

-327.v Escriba el número de mensaje parcial o completo. Puede utilizar caracteres

comodín en el número de mensaje para ampliar la búsqueda; utilice * pararepresentar varios caracteres y ? para representar un solo carácter. Por ejemplo:– La serie de búsqueda DFS20?I devuelve todos los mensajes que empiezan por

la serie DFS20, seguido de un carácter cualquiera y seguido de I.– La serie de búsqueda DFS20??I devuelve todos los mensajes que empiezan

por la serie DFS20, seguida de dos caracteres cualquiera y seguido de I.– La serie de búsqueda DFS20*I devuelve todos los mensajes que empiezan por

la serie DFS20, seguidos por cualquier número y tipo de caracteres y seguidode I.

El centro de información contiene la información de mensajes más reciente paratodos los productos de gestión de información incluidos en el centro deinformación.

Utilización de un motor de búsqueda Web

Puede utilizar cualquiera de los motores de búsqueda conocidos que esténdisponibles en la web para buscar explicaciones de mensajes. Cuando escribe elcódigo o número de mensaje específico en el motor de búsqueda, se le apareceránenlaces que le dirigen a la información del mensaje en los centros de informaciónde IBM.

Cómo enviar comentariosSu opinión es importante para ayudarnos a ofrecerle la mayor precisión y la másalta calidad en la información. Si desea hacer comentarios sobre esta publicación ocualquier otra documentación, utilice cualquiera de las siguientes opciones:v Utilice el formulario de comentarios del lector en línea que encontrará en:

http://www.ibm.com/software/data/rcfv Envíe sus comentarios por correo electrónico a [email protected].

Asegúrese de incluir el nombre de la publicación, el número de pieza de lapublicación, la versión de su producto, y, si procede, la ubicación específica deltexto sobre el que realiza los comentarios (por ejemplo, un número de página oun número de tabla).

x Developing DB2 QMF applications

Page 13: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 1. Visión general del desarrollo de aplicaciones deQMF

Desarrollo de aplicaciones hace referencia al proceso de creación de un procedimientoo aplicación en QMF.

Puede utilizar muchas de las funciones de QMF en sus propias aplicaciones. Porejemplo, puede escribir aplicaciones que:v Ejecuten consultas o procedimientosv Exporten o importen objetos y tablas de QMFv Visualicen o impriman informes o gráficasv Permitan que el usuario introduzca o cambie datos en la base de datosv Permitan que el usuario realice cambios globales en varios objetos a la vez

También puede escribir aplicaciones que proporcionen funciones útiles a sususuarios en QMF. Por ejemplo, escriba un mandato que imprima informes de QMFen una ubicación remota o una tecla de función que genere una gráfica deresultados de ventas semanales.

¿Qué significa es desarrollo de aplicaciones en QMF?La palabra aplicación puede tener muchos significados. En QMF, una aplicación esun procedimiento o programa que emite mandatos de QMF y utiliza servicios deQMF para conseguir una tarea empresarial específica.

El desarrollo de aplicaciones incluye:v Entender el problema que el procedimiento o la aplicación debe resolverv Diseñar el procedimiento o aplicaciónv Escribir el código, mensajes asociados y paneles de ayuda

¿Cómo pueden utilizar la aplicación los usuarios?Hay dos tipos principales de aplicaciones de QMF: aplicaciones en la que losusuarios interactúan con la aplicación y aplicaciones en las que la aplicación sepuede iniciar desde dentro de QMF.

Cómo interactuar con la aplicación principalmenteSi la aplicación está prevista para usuarios que no están familiarizados con QMF,es probable que quiera que dichos usuarios interactúen principalmente con laaplicación.

Es posible que no desee que los usuarios sepan que QMF está activo. En tal caso,la aplicación utiliza los servicios deQMF, pero se ejecuta fuera de QMF. Elprograma sólo emite mandatos de QMF cuando resulta necesario.

Supongamos que escribe una aplicación que utiliza servicios de QMF. Estaaplicación proporciona una interfaz controlada por el menú al usuario. En elsiguiente ejemplo, la aplicación controla QMF. El usuario sólo interactúa con lainterfaz de usuario y no tiene en cuenta que QMF está activo.

© Copyright IBM Corp. 1982, 2013 1

Page 14: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Si el usuario selecciona la opción 1, la aplicación ejecuta un procedimiento de QMFque ejecuta una consulta e imprime el informe de resultados.

Inicio de la aplicación desde una sesión de QMFSi los usuarios están familiarizados con QMF, es posible que desee que los usuariosvean su aplicación como una ampliación o personalización de QMF. En tal caso,debe configurar la aplicación para que se ejecute en QMF.

Supongamos que escribe una aplicación denominada SEND_TO que envía uninforme de QMF de un usuario a otro.

Espera que sus usuarios ejecuten la aplicación desde dentro del entorno de QMF.Los usuarios pueden utilizar la línea de mandatos para emitir un sinónimo demandato de QMF denominado SEND_TO (creado por el usuario). De formaalternativa, puede asignar la aplicación a una tecla de función que ejecuteautomáticamente la aplicación.

Después de generar un informe, el usuario puede enviar el informe a Smithintroduciendo el mandato de QMF personalizado SEND_TO SMITH en la línea demandatos de QMF.

J & H Supply CompanyInformation System

Seleccione una de las siguientes opciones:

1. Imprimir el informe mensual de ventas

2. Crear un nuevo informe

3. Modificar información de la base de datos

4. Finalizar la aplicación

====> 1

Figura 1. Un ejemplo de panel definido por la aplicación

2 Developing DB2 QMF applications

Page 15: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

¿Qué herramientas de desarrollo de aplicaciones de QMF haydisponibles?

Puede escribir aplicaciones que utilicen interfaces de programación de aplicacionesy procedimientos de QMF para QMF.

Puede crear sinónimos de mandatos para invocar sus procedimientos yaplicaciones. Un sinónimo de mandato es un mandato que ejecuta un mandato deQMF, TSO o CICS. Cree un sinónimo de mandato introduciendo el mandato y sudefinición en una tabla de sinónimos de mandatos. Durante la inicialización, QMFcarga la tabla de sinónimos de mandatos que se especifica en el perfil de QMF delusuario que ha iniciado QMF.Información relacionada:

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de cómo crear sinónimos de mandato

Procedimientos de QMFLos procedimientos de QMF son objetos de QMF que se ejecutan dentro de QMF yemiten mandatos de QMF. Los procedimientos de QMF se pueden ejecutar deforma interactiva y de forma no interactiva. Puede ejecutar un procedimiento deforma no interactiva iniciando QMF en modalidad de proceso por lotes. Si utilizaQMF para TSO, también puede iniciar QMF como un procedimiento almacenadode DB2 para z/OS.

Los procedimientos de QMF pueden ejecutar cualquier mandato de QMFdisponible en el sitio. QMF proporciona dos tipos de procedimientos:procedimientos lineales y procedimientos con lógica.v Los Procedimientos lineales sólo contienen mandatos y comentarios de QMF.

Puede utilizar procedimientos lineales en todos los entornos soportados en QMF.

REPORT LINE 1 POS 1 79

NAME DEPT JOB SALARY COMM--------- ------ ----- ---------- ----------DANIELS 10 MGR 19260.25 -JONES 10 MGR 21234.00 -LU 10 MGR 20010.00 -MOLINARE 10 MGR 22959.20 -HANES 15 MGR 20659.80 -JULVE 15 OFIC 12258,50 110,10NOGUERA 15 OFIC 12508,20 206,60ROMANO 15 VENTA 16502,83 1152,00JAMES 20 OFIC 13504,60 128,20PENA 20 VENTA 18171,25 612,45SANDERS 20 MGR 18357.50 -SILVANO 20 OFIC 14252,75 126,50ABRAGAO 38 OFIC 12009,75 236,50MARENGHI 38 MGR 17506.75 -

1=Ayuda 2= 3=Fin 4=Imprimir 5=Diagrama 6=Consulta7=Retroceder 8=Avanzar 9=Formato 10=Izquierda 11=Derecha 12=Aceptar, aquí está el informe.COMMAND ===> SEND_TO SMITH

Figura 2. Ejemplo de un usuario introduciendo un mandato de QMF personalizado

Capítulo 1. Visión general del desarrollo de aplicaciones de QMF 3

Page 16: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Los Procedimientos con lógica combinan mandatos de QMF con la lógica de REXXque ayuda a crear programas más potentes. Puede utilizar procedimientos conlógica en todos los entornos soportados en QMF excepto CICS. Losprocedimientos con lógica pueden contener mandatos de QMF y cualquiersentencia que sea válida en un programa de REXX, incluyendo mandatos desistema.

QMF proporciona un procedimiento de inicialización de sistema y otros métodosque permiten ejecutar mandatos y establecer variables globales antes de que elusuario vea el panel de inicio de QMF.Conceptos relacionados:Capítulo 2, “Procedimientos como aplicaciones”, en la página 7Puede escribir aplicaciones totalmente como procedimientos. Si utiliza QMF en elentorno de CICS, puede escribir procedimientos lineales, que son procedimientos quesólo incluyen mandatos o sinónimos de QMF que emiten mandatos de QMF. Siutiliza QMF en el entorno de TSO, puede escribir procedimientos con lógica ademásde procedimientos lineales. Los procedimientos con lógica pueden incluirsentencias y funciones de REXX además de mandatos y sinónimos de mandatos deQMF.Referencia relacionada:“Variables globales que controlan cómo se ejecutan los mandatos y losprocedimientos” en la página 230Las variables globales DSQEC controlan cómo se ejecutan los mandatos yprocedimientos. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.Información relacionada:

Utilización de DB2 QMFBúsqueda de información acerca de cómo escribir procedimientos lineales oprocedimientos con lógica.

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de cómo iniciar QMF en modalidad de procesopor lotes o como un procedimiento almacenado z/OS y acerca de cómo inicializarvariables globales cuando se inicia QMF.

Interfaces de programación de aplicaciones de QMFHay dos interfaces de programación de aplicaciones para QMF: la interfazinvocable y la interfaz de mandatos.

Interfaz invocable

Puede utilizar la interfaz invocable de QMF para crear una aplicación que seinvoque fuera de QMF. A continuación, dicha aplicación inicia una sesión de QMFy envía mandatos a QMF para su ejecución.

La interfaz invocable es una interfaz de programación que permite acceder aservicios de QMF. La interfaz invocable está disponible para los lenguajes deprogramación y entornos mostrados en la siguiente tabla.

Tabla 1. Soporte de la interfaz invocable

CICS TSO Lote de z/OS nativo

Assembler × × ×

C × × ×

4 Developing DB2 QMF applications

|||

Page 17: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 1. Soporte de la interfaz invocable (continuación)

CICS TSO Lote de z/OS nativo

COBOL × × ×

Fortran × ×

PL/I × × ×

REXX × ×

QMF admite todas las versiones de estos lenguajes de programación soportadospor DB2 para z/OS.

Interfaz de mandatos (sólo TSO)

Puede crear aplicaciones que sometan mandatos a QMF desde un diálogo ISPFutilizando la interfaz de mandatos de QMF. QMF se comunica con el diálogo ISPFmediante la agrupación de variables ISPF a través de esta interfaz de mandatos.QMF debe iniciarse antes de iniciar la aplicación ISPF.

La interfaz de mandatos sólo está disponible donde ISPF esté disponible; no estádisponible en CICS. Puede escribir una aplicación de interfaz de mandatos encualquier lenguaje de programación que ISPF soporte.Conceptos relacionados:Capítulo 3, “La interfaz invocable y aplicaciones de QMF”, en la página 17Los lenguajes de programación pueden utilizar la interfaz invocable de QMF paraejecutar mandatos de QMF.Capítulo 4, “Emisión de mandatos de QMF desde un diálogo ISPF”, en la página25Puede emitir mandatos de QMF desde un diálogo ISPF que se esté ejecutando bajoQMF mediante la interfaz de mandatos de QMF.Información relacionada:

Lenguajes y métodos de programación para el desarrollo de programas deaplicaciónConsulte la información sobre los lenguajes de programación soportados por DB2para z/OS.

Convenios de la información sobre la característica de idioma nacionalDB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

Utiliza las NLF para permitir que los usuarios introduzcan mandatos de QMF,visualicen la ayuda y completen tareas de QMF en idiomas que no sean el inglés.Las características de idioma nacional se instalan como características separadas deDB2 QMF.

Todas las tareas descritas en esta información se pueden completar para elproducto QMF base (idioma inglés) y para cualquier NLF. Los procedimientostanto para las sesiones base como para las sesiones NLF son los mismos; noobstante, se identifican consideraciones especiales para los usuarios de lacaracterística de idioma nacional.

Algunos nombres de programas o conjuntos de datos de esta informacióncontienen la variable n, lo que indica que este carácter del nombre puede variar.

Capítulo 1. Visión general del desarrollo de aplicaciones de QMF 5

Page 18: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Sustituya la variable n por el identificador de idioma nacional de un carácter(NLID) en la siguiente tabla que coincide con la característica de idioma que seestá utilizando. La tabla también muestra los nombres mediante los que QMFreconoce cada idioma.

Tabla 2. Características de idioma nacional de QMF y su información de identificación

Característica de idiomanacional (National LanguageFeature)

Identificador(NLID)

Nombre que QMFutiliza para esta NLF

Inglés E ENGLISH

Inglés en mayúsculas U UPPERCASE

Francés de Canadá C FRANCAIS CANADIEN

Danés Q DANSK

Francés PRI FRANCAIS

Alemán D DEUTSCH

Italiano I ITALIANO

Kanji japonés K NIHONGO

Hangeul coreano H HANGEUL

Portugués de Brasil P PORTUGUES

Español S ESPANOL

Sueco V SVENSKA

Francés suizo S FRANCAIS (SUISSE)

Alemán de Suiza Z DEUTSCH (SCHWEIZ)

La característica de inglés en mayúsculas utiliza el idioma inglés, pero conviertetodo el texto en caracteres en mayúsculas. Los caracteres en mayúsculas permitenque los usuarios que trabajan con Katakana visualicen los dispositivos para utilizarel producto y obtengan mensajes y ayuda en línea en inglés.Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBúsqueda de información acerca de cómo instalar una característica de idiomanacional.

6 Developing DB2 QMF applications

Page 19: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 2. Procedimientos como aplicaciones

Puede escribir aplicaciones totalmente como procedimientos. Si utiliza QMF en elentorno de CICS, puede escribir procedimientos lineales, que son procedimientos quesólo incluyen mandatos o sinónimos de QMF que emiten mandatos de QMF. Siutiliza QMF en el entorno de TSO, puede escribir procedimientos con lógica ademásde procedimientos lineales. Los procedimientos con lógica pueden incluirsentencias y funciones de REXX además de mandatos y sinónimos de mandatos deQMF.

Si va a escribir una aplicación que deba funcionar en un procedimiento enalmacenamiento temporal de QMF, no puede escribir su aplicación como unprocedimiento. Cuando ejecute un procedimiento, éste pasará a ser elprocedimiento actual en el almacenamiento temporal de QMF.Conceptos relacionados:“Servicios ISPF en un procedimiento con lógica” en la página 35Debe realizar la transferencia desde el diálogo del programa de QMF a un diálogode mandatos ISPF para ejecutar los mandatos ISPF desde un procedimiento deQMF con lógica que se esté ejecutando bajo ISPF.Información relacionada:

Utilización de DB2 QMFBúsqueda de información acerca de cómo crear, compilar y ejecutarprocedimientos.

Procedimientos inicialesUn procedimiento inicial es un procedimiento que se ejecuta inmediatamentedespués del inicio de la sesión de QMF. Utilice el parámetro DSQSRUN paraespecificar el nombre de este procedimiento y obtener información acerca de cómose comportan los procedimientos iniciales en algunas situaciones específicas.

Puede utilizar el parámetro DSQSRUN:v Con el mandato DSQQMFn cuando se inicia QMF interactivamente (donde n es

un identificador de idioma nacional de un carácter que coincide con lacaracterística de idioma que se está utilizando).

v Con el mandato START de QMF cuando QMF se inicia mediante la interfazinvocable.

En TSO, ISPF y lotes de z/OS nativos, las aplicaciones también pueden establecerparámetros utilizando un programa REXX. El programa se especifica con elparámetro DSQSCMD del mandato START de QMF START. Puesto que QMF paraCICS no da soporte a REXX, debe especificar todos los parámetros del programaen el mandato START utilizando DSQSMODE=I. Este valor para DSQSMODEespecifica la operación interactiva en CICS. La modalidad predeterminada de lainterfaz invocable es B (para operación por lotes).

Consideraciones para escribir procedimientos iniciales

Tenga en cuenta los siguientes puntos al escribir y utilizar un procedimientoinicial:

© Copyright IBM Corp. 1982, 2013 7

Page 20: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v De forma predeterminada, QMF vuelva e ejecutar el procedimiento cada vez queel usuario emite el mandato END en una sesión interactiva de QMF iniciado porDSQQMFn. (La variable n es un identificador de idioma nacional de un carácterque coincide con la característica de idioma que se está utilizando). La variableglobal DSQEC_RERUN_IPROC especifica si se vuelve a ejecutar elprocedimiento inicial. El valor predeterminado de esta variable es 1 para volvera ejecutar el procedimiento; el valor 0 impide que se vuelva a ejecutar elprocedimiento inicial.En programas de interfaz invocable, nunca se vuelve a ejecutar el procedimientoinicial, por lo que esta variable global no afecta a los programas de interfazinvocable.

v Cuando escriba procedimientos iniciales para que utilicen una sesión de QMFinteractiva, evite la utilización del panel de inicio como panel actual al final delprocedimiento. QMF no muestra interactivamente un panel al final delprocedimiento en este caso. Si no se han producido errores graves yDSQEC_RERUN_IPROC está establecido en 1, QMF vuelve a ejecutar elprocedimiento inicial sin interactuar con el usuario. Como resultado, se entra enun bucle que no se puede interrumpir que puede aparecer como si QMF no seestuviera iniciando.Para evitar la creación de un bucle ininterrumpible, considere una de estasopciones:– Asegúrese de que el panel actual al final del procedimiento no sea el panel de

inicio.– Asegúrese de que el procedimiento contenga un mandato EXIT o INTERACT

de QMF.– Establezca DSQEC_RERUN_IPROC en cero (0).

v El número de ampersands (&) que debe utilizar antes del nombre de lasvariables de sustitución en procedimientos iniciales puede variar en función delentorno. Por ejemplo, puede especificar DSQSRUN como:DSQSRUN=INITPROC (&VAR1 = value)

El número de ampersands que debe especificar con VAR1 depende de si QMF seejecuta bajo CICS, TSO, o lotes de z/OS nativos. El número cambia si ISPF estápresente y si el programa que inicia QMF se escribe en REXX.

Procedimientos iniciales y unidad de trabajo remota

El procedimiento inicial debe almacenarse en el sistema en el que se iniciaQMF (elsistema local).

Cuando utilice el mandato CONNECT de QMF en procedimientos iniciales, deberádesconectarse de la ubicación remota. En otras palabras, codifique la aplicación quedebe reconectarse con la ubicación original antes de codificar un mandato ENDpara invocar de nuevo al procedimiento inicial. Si aún está conectado con laubicación remota, recibirá un error. También es necesario desconectar de QMFCONNECT que se emite desde la línea de mandatos durante una sesión interactivaestablecida por un procedimiento inicial.

8 Developing DB2 QMF applications

Page 21: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).“Palabras claves del mandato START” en la página 56Puede especificar palabras clave en el mandato START.Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBúsqueda de información acerca del parámetro DSQSRUN.

El mandato CONNECT de QMF con un procedimientoPara establecer una conexión con otro ID de usuario o con una base de datos DB2remota para utilizar el soporte de unidad de trabajo remota, emite el mandatoCONNECT de QMF. Puede utilizar este mandato dentro de un procedimientolineal o un procedimiento con lógica.

Cuando escriba procedimientos que utilicen el mandato CONNECT de QMF paraacceder a bases de datos remotas, tenga en cuenta las siguientes circunstancias:v Si está conectado a una base de datos remota y emite un mandato EJECUTAR

PROC, dicho procedimiento y todos los objetos utilizados en dichoprocedimiento deben almacenarse en la base de datos remota.

v Todos los mandatos de QMF en el procedimiento se ejecutan en elalmacenamiento temporal de QMF en el sistema en el que se está ejecutandoQMF (el sistema local). Sin embargo, todos los objetos utilizados por estosmandatos de QMF (como consultas, procedimientos o formularios) deben estardefinidos en la base de datos de la ubicación actual (el sistema remoto).

v Los mandatos que afectan a la base de datos (sentencias SQL, consultas de QMFo actualizaciones de EDIT TABLE) se ejecutan en la ubicación actual.

v Si el procedimiento contiene mandatos específicos del sistema (CICS o TSO),estos mandatos se ejecutan en el sistema en el que se está ejecutando QMF (elsistema local). Si los procedimientos contienen mandatos específicos del sistemaque no se ejecutan en el sistema en el que se está ejecutando QMF, elprocedimiento no se puede ejecutar satisfactoriamente.

v Cualquier conjunto de datos o cola de datos utilizado en un mandato específicode sistema debe existir en el sistema donde se está ejecutando QMF (el sistemalocal).

v Si el sitio utiliza TSO y aprovecha el soporte de RACF para contraseñas enmayúsculas y minúsculas, asegúrese de que la opción CASE de su perfil deQMF esté establecida en MIXED. De lo contrario, QMF convierte todas lasentradas en mayúsculas, causando que falle el mandato CONNECT. Cuando seaCASE=MIXED, asegúrese de indicar a los usuarios de la aplicación de QMF queintroduzcan todas las entradas en mayúsculas, puesto que QMF sólo reconocemandatos en mayúsculas.

v Si el procedimiento se pasa como un parámetro en una sentencia CALL queinicia QMF para TSO utilizando la interfaz de procedimiento almacenado, elprocedimiento no puede acceder a bases de datos remotas. Todos los mandatosdel procedimiento que intenten acceder a una base de datos remota deberáneliminarse o comentarse antes de ejecutar el procedimiento con esta interfaz.

Capítulo 2. Procedimientos como aplicaciones 9

Page 22: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Información relacionada:

Consulta de DB2 QMFBúsqueda de información sobre la utilización del mandato CONNECT de QMF ysobre el soporte de la unidad de trabajo remota.

Instalación y gestión de DB2 QMF para TSO y CICSBúsqueda de información sobre cómo iniciar QMF para TSO como unprocedimiento almacenado DB2 para z/OS.

Variables de sustitución en procedimientosPuede utilizar variables de sustitución de QMF en procedimientos lineales yprocedimientos con lógica.

Una variable de sustitución es cualquier variable que pueda utilizar en unmandato de QMF. Una variable de sustitución va siempre precedida de un símbolo&. Puede asignar un valor a una variable de sustitución de estas maneras:v Estableciendo variables globales con el mandato SET GLOBALv Especificando valores en el mandato RUNv Especificando valores en el indicador de mandatos del mandato RUN.Referencia relacionada:“SET GLOBAL (sintaxis ampliada)” en la página 53Para crear sus propias variables globales y utilizarlas en mandatos de QMF comovariables de sustitución, emita el mandato SET GLOBAL. También puede utilizar elmandato SET GLOBAL para establecer valores para variables globales de QMFpredefinidas, que empiezan por "DSQ."Información relacionada:

Utilización de DB2 QMFBúsqueda de información sobre cómo utilizar ampersands con variables desustitución.

Especificación de valores en el mandato RUNPuede asignar un valor a una variable de sustitución utilizando el mandato RUN.

Si el procedimiento es un procedimiento lineal, asigne el valor de la variable en elmandato RUN PROC de la siguiente manera:RUN PROC SCHEDULE (&&TYPE=’VACATION’

Si el procedimiento es un procedimiento con lógica, asigne el valor de la variableen el mandato RUN PROC de la siguiente manera:"RUN PROC SCHEDULE (&&TYPE=’VACATION’"

El valor de &TYPE sólo está disponible para el procedimiento llamadoSCHEDULE.

En este ejemplo:v El valor de la variable VACATION está rodeado de comillas simples porque el

valor es una serie de caracteres.v TYPE viene precedido por ampersands dobles (&&) para indicar que el valor se

está estableciendo en la sentencia RUN que debe pasarse al procedimientodenominado SCHEDULE. Si la sentencia RUN especifica &TYPE, elprocedimiento que contiene esta sentencia solicita el valor al usuario.

10 Developing DB2 QMF applications

Page 23: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Este valor para la variable de sustitución sólo está activo en el procedimiento quelo define. El valor no está activo en ningún procedimiento o módulo llamadodesde el procedimiento de definición.

Especificación de valores en el panel de solicitud del mandatoRUN

Cuando ejecute una consulta o procedimiento con una variable de sustitución,puede asignar un valor del mandato RUN o mediante una variable global. Noobstante, si la variable de la consulta o el procedimiento no tiene ningún valor,QMF presenta un panel de solicitud del mandato RUN. A continuación puedeespecificar el valor para la variable en dicho panel.

Este valor para la variable de sustitución sólo está activo en el procedimiento quelo define. El valor no está activo en ningún procedimiento o módulo llamadodesde el procedimiento de definición.

Solicitud de variables en procedimientos lineales

En un procedimiento lineal, QMF examina el procedimiento de las variables desustitución y las resuelve antes de procesar algún mandato. El sistema solicita alusuario todas las variables antes de ejecutar el procedimiento.

Solicitud de variables en procedimientos con lógica

En un procedimiento con lógica, no se solicitan variables al usuario hasta queREXX encuentra la sentencia que contiene las variables. Para que el usuario sóloreciba una solicitud, puede ejecutar un procedimiento separado que solicite lasvariables.

Por ejemplo, desea que sólo se le soliciten una única vez las variables desustitución LASTNAME y DEPT_NUM. Estas variables aparecen en dos líneasdiferentes del procedimiento con lógica:

Añada esta línea al principio del procedimiento con lógica, de forma que sigainmediatamente a las siguientes líneas de comentarios:"RUN PROC PROMPT_ME (&APELLIDO, &NUMERO_DTO";

Importante: Todos los procedimientos con lógica deben empezar por, al menos,una línea de comentarios.

En este mandato, PROMPT_ME es un procedimiento con lógica como el siguiente,que contiene una línea de comentarios y ninguna instrucción:/* Este procedimiento es un procedimiento ficticio que permite solicitar *//* información al usuario */

/* Este procedimiento ejecuta dos consultas y muestra el informe después de *//* de la ejecución de la consulta. */

"RUN QUERY REG_QUERY (&&LASTNAME=&LASTNAME";"INTERACT""RUN QUERY REG2_QUERY (&&NUMERO_DTO=&NUMERO_DTO";

Figura 3. Solicitud de valores de variable en un procedimiento con lógica

Capítulo 2. Procedimientos como aplicaciones 11

Page 24: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

El procedimiento completo incluye el mandato RUN PROC para el procedimientoPROMPT_ME que solicita variables:

De forma alternativa, puede utilizar el mandato SET GLOBAL para solicitar todoslos valores del procedimiento a la vez, como en el siguiente ejemplo:"SET GLOBAL (LASTNAME=&APELLIDO,DEPTNUM=&NUMERO_DTO";

Variables de REXX en procedimientos con lógicaPuede utilizar variables de REXX en un procedimiento con lógica. Los valores deestas variables sólo se conocen dentro del procedimiento en el que se han definido.

Puede utilizar las variables de REXX en un procedimiento con lógica de estasformas:v Copie una variable REXX en una variable QMF con el mandato FIJAR GLOBALv Copie una variable global en una variable de REXX con el mandato OBTENER

GLOBALv Utilice variables de REXX en las sentencias REXXInformación relacionada:

Consulta de DB2 QMFBúsqueda de información acerca de la utilización de los mandatos GET GLOBAL ySET GLOBAL en procedimientos con lógica.

El Centro de publicaciones de IBMBúsqueda de información de referencia de REXX para el sistema.

Cómo pasar argumentos a un procedimiento con lógicaPara procedimientos con lógica, QMF proporciona una opción ARG en el mandatoRUN PROC. Utilice esta opción para pasar argumentos o valores a unprocedimiento con lógica.

Utilice la opción ARG cuando ejecute un procedimiento que contenga unasentencia PARSE o ARG de REXX como en el ejemplo siguiente:

El mandato RUN de este procedimiento es como sigue:EJECUTAR PROC SHOW_ARGS (ARG=(nombre_consulta nombre_formato)

/* Este procedimiento ejecuta dos consultas y muestra el informe después de *//* de la ejecución de la consulta */

"RUN PROC PROMPT_ME (&APELLIDO, &NUMERO_DTO";"RUN QUERY REG_QUERY (&&LASTNAME=&LASTNAME";"INTERACT""RUN QUERY REG2_QUERY (&&NUMERO_DTO=&NUMERO_DTO";

Figura 4. Procedimiento con lógica que solicita variables

PROC WILDE.SHOW_ARGS MODIFIC. LINEA 1

/************************************************************************//* Este procedimiento muestra como utilizar la opcion ’ARG=’ en el *//* mandato EJECUTAR PROC. *//************************************************************************/parse upper arg nombre_consulta nombre_formato"EJECUTAR CONSULTA" nombre_consulta "(FORMATO="nombre_formato

Figura 5. Cómo pasar valores de variable utilizando la opción ARG del mandato RUN PROC

12 Developing DB2 QMF applications

Page 25: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

En este mandato, nombre_consulta y nombre_formulario son nombres de variables deREXX que describen los parámetros que se pasan al procedimiento con lógica.Utilice estas variables, que contienen los nombres de objeto para una consulta o unformulario, para hacer referencia a los parámetros que se han pasado alprocedimiento con lógica.

Sentencias de manejo de errores de REXX en procedimientos conlógica

Puede utilizar técnicas de manejo de errores de REXX, como la instrucciónSIGNAL de REXX, en un procedimiento con lógica. También puede utilizarmandatos y variables de QMF con la instrucción EXIT de REXX para ayudar aclarificar los códigos de retorno no cero.

Ramificación hacia subrutinas de manejo de erroresLa instrucción SIGNAL ON ERROR de REXX indica a REXX que debe abandonarla línea actual y que debe ramificarse a una etiqueta marcada como error cuandose encuentre un código de retorno de no cero.

Esta sentencia requiere dos partes:v Instrucción SIGNAL ON ERROR

Después de cada mandato, REXX coloca el código de retorno del mandato enuna variable llamada rc.Si un mandato tiene un código de retorno distinto a cero, REXX se bifurca a laetiqueta error.SIGNAL ON ERROR devuelve errores desde el entorno de mandatos delprocedimiento de QMF REXX (ADDRESS QRW), pero no la interfaz invocablede REXX.

v Etiqueta de errorLa instrucción SIGNAL ON ERROR requiere que el usuario proporcione unaetiqueta en la que el procedimiento pueda ramificarse si se encuentra con uncódigo de retorno de no cero. La etiqueta precede al código de manejo deerrores. El código de retorno está en la variable rc. Puede utilizar esta variablepara ramificarse a otra subrutina o puede utilizarla en la instrucción EXIT, comoen el siguiente ejemplo:/* código de manejo de errores de un procedimiento con lógica */error:

exit rc

Mensajes con la sentencia EXIT de REXXPuede utilizar la instrucción EXIT de REXX para salir de un procedimiento conlógica. QMF siempre emite un mensaje cuando finaliza la ejecución de unprocedimiento con lógica.

Si utiliza la instrucción EXIT, el mensaje que vaya a ver dependerá de estosfactores:v Si el último mandato de QMF se ha encontrado un errorv Si el código de retorno era cero

Esta tabla muestra el mensaje que verá basándose en estas condiciones.

Capítulo 2. Procedimientos como aplicaciones 13

Page 26: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 3. Mensajes devueltos desde QMF

Código de retornodel último mandatode QMF

Código de retorno deprocedimiento

Ejemplos de mensajes cuando termina elprocedimiento

0 0 El procedimiento se ha ejecutado

0 Distinto de ceroEl código de retorno del procedimientoera 8

Distinto de cero 0El mensaje de error proporcionado porQMF

Distinto de cero Distinto de ceroEl mensaje de error proporcionado porQMF

Un mensaje de error de QMF tiene prioridad ante el mensaje de código de retornosi tiene un mandato de QMF incorrecto y un código de retorno de no cero.

Si desea mostrar el mensaje de error del último mandato y salir con un código deretorno de QMF, utilice el mandato MESSAGE y la instrucción EXITDSQ_RETURN_CODE. For example:..."MESSAGE (TEXT=’"dsq_message_text"’"exit dsq_return_code

Las variables dsq_message_text y dsq_return_code son variables de REXXproporcionadas por QMF. Puede utilizar el mandato MESSAGE y la variabledsq_message_text para almacenar y visualizar un mensaje posteriormente, tal comose explica en este ejemplo:/* Informe mensual */señal en error"DISPLAY TABLE JUNE_INFO""PRINT REPORT"exit(0);error: original_msg = dsq_message_text/* Guarda mensaje de error. */"RUN PROC GENERAL_RECOVERY"/* Este proc genera *//* nueva dsq_message_text. */"MESSAGE (TEXT=’" original_msg "’"/* Visualizar msj. error original */salir dsq_return_code;

Referencia relacionada:“Variables de comunicaciones de interfaz de REXX” en la página 204Las variables de las comunicaciones de interfaz consisten en distintas variablesdeREXX. Se establecen después de la terminación de cada llamada y no deben seralteradas por el programa de llamada.“MESSAGE” en la página 50Cuando cree aplicaciones, a menudo querrá enviar mensajes específicos a sususuarios acerca de la información visualizada para ellos o su siguiente acción.Puede escribir sus propios mensajes y visualizarlos en paneles de QMF mediante elmandato MESSAGE. En ISPF, también puede decidir que QMF muestre la ayudapara mensajes para un mensaje de error ISPF.

Invocación de programas REXX desde un procedimiento con lógicaPuede utilizar distintos métodos para invocar el programa REXX cuando seutilizan variables de sustitución y cuando no.

14 Developing DB2 QMF applications

Page 27: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Cómo llamar a programas de REXX sin variables desustitución

Si el programa de REXX no contiene un mandato RUN incorporado que incluyavariables de sustitución, invoque al programa utilizando la instrucción ADDRESS oCALL. También puede llamar al programa como una función.

Utilice uno de estos mandatos para invocar al programa:v La instrucción ADDRESS

Esta instrucción establece un entorno de mandatos. Por ejemplo, si el programase denomina PANDA y desea llamarlo desde dentro del entorno de TSO, elmandato es:ADDRESS TSO "PANDA"

v La instrucción CALLEsta instrucción invoca un programa. Por ejemplo, para el programadenominado PANDA, el mandato es:CALL PANDA

v Una funciónTambién puede llamar al programa PANDA como una función:answer = PANDA()

Es posible que se plantee eliminar las variables de sustitución del mandato RUN sidesea llamar a los programas con una de las llamadas de invocación de REXX. Ental caso, QMF solicita las variables al usuario.Conceptos relacionados:Capítulo 5, “ADDRESS QRW y el entorno de mandatos de QMF”, en la página 31Cuando se inicia QMF en TSO, ISPF o z/OS nativo, QMF crea un entorno demandatos de REXX denominado QRW. Si va a ejecutar un programa REXX, puedeestablecer el entorno de mandatos predeterminado en QRW emitiendo el mandatoADDRESS QRW de REXX ADDRESS. Con ADDRESS QRW, QMF permanece en elentorno de mandatos predeterminado hasta que se emite otro mandato ADDRESS.Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca de la sintaxis de la instrucción CALL.

El Centro de publicaciones de IBMBúsqueda de información de referencia de REXX para el sistema.

Cómo llamar a programas de REXX que contienen variablesde sustitución

Si la aplicación de REXX contiene un mandato RUN de QMF con una variable desustitución, debe invocarla utilizando el mandato nombre_programa de TSO.

Tanto si está ejecutando un procedimiento con lógica o un programa de la interfazinvocable invocado por un procedimiento con lógica, los mandatos entran enQMFde la misma forma. En este contexto, el programa de interfaz invocable seconvierte en una extensión lógica del propio procedimiento.

Por ejemplo, considere el mandato siguiente:RUN QUERY WEEKLY_Q (&DEPT=58

Capítulo 2. Procedimientos como aplicaciones 15

Page 28: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

En un procedimiento con lógica, utilice dos ampersands en la variable desustitución para pasar la variable a la consulta:"RUN QUERY WEEKLY_Q (&&DEPT=58"

Si una variable de sustitución sólo tiene un ampersand,QMF resuelve la variabledel propio procedimiento y no pasa la variable a la consulta.

Si llama a la aplicación de la interfaz invocable de REXX desde un procedimientocon lógica y dicha aplicación contiene el mandato RUN QUERY WEEKLY_Q(&DEPT=58,QMF resuelve la variable tal como lo haría para el procedimiento dellamada. Puesto que sólo se utiliza un ampersand, la variable no se pasa a laconsulta.

Para pasar variables a QMF desde una aplicación de interfaz invocable de REXXllamada por un procedimiento con lógica, tiene tres opciones:v Utilice el mandato de TSO para llamar a la aplicación.

Cuando llame a la aplicación, QMF no procesará ninguna variable de sustituciónque se encuentre. En el mandato RUN QUERY precedente, se pasa &DEPT=58 a laconsulta, donde se resuelve la variable de sustitución.

v Trate todas las variables de sustitución de su aplicación como si las estuvierautilizando en un procedimiento con lógica.Añada un ampersand a cada variable de sustitución de forma que elprocedimiento con lógica no la resuelva.

v Utilice variables globales.Puede definir variables globales al iniciar la aplicación y utilizarlas durante todala sesión de QMF. También puede establecer la variable globalDSQEC_USERGLV_SAV para guardar valores de variable global de una sesión aotra.

Referencia relacionada:“Variables globales que controlan cómo se ejecutan los mandatos y losprocedimientos” en la página 230Las variables globales DSQEC controlan cómo se ejecutan los mandatos yprocedimientos. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.

16 Developing DB2 QMF applications

||||

Page 29: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 3. La interfaz invocable y aplicaciones de QMF

Los lenguajes de programación pueden utilizar la interfaz invocable de QMF paraejecutar mandatos de QMF.Referencia relacionada:Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.

¿Qué es la interfaz invocable?La interfaz invocable de QMF facilita interfaces estándar para distintos lenguajesde programación y proporciona acceso y almacenamiento común a variables deprograma.

Cuando un programa de aplicación necesita ejecutar un mandato de QMF, debeiniciar la comunicación entre el programa y QMF. Esta comunicación se realizaemitiendo una llamada a la rutina de la interfaz de QMF. QMF proporciona unarutina para cada lenguaje soportado.

El programa de aplicación puede emitir uno o varios mandatos de QMF tras lallamada START inicial. El programa de aplicación llama a la rutina para emitircada mandato de QMF.

Después de que el mandato de QMF finalice el procesamiento, QMF suministra uncódigo de retorno que indica el estado de QMF. La interfaz invocable recopila otrainformación sobre el procesamiento del mandato y almacena dicha información envariables a las que se puede acceder desde QMF y el programa de aplicación. Estasvariables están incluidas en una agrupación de variables o en una área decomunicaciones de interfaz. Cuando la interfaz invocable devuelve el control alprograma de la aplicación de llamada, la aplicación puede hacer referencia a estasvariables pero no puede modificarlas.

Cuando el programa de aplicación ya no necesita utilizar QMF, el programa emiteuna llamada para terminar la comunicación entre el programa y QMF. Estallamada se realiza a la rutina de QMF.

Consideraciones para utilizar la interfaz invocable de QMFEl flujo de control entre la aplicación yQMF utilizando la interfaz invocable estásujeta a determinadas reglas.

Tenga en cuenta los siguientes puntos al escribir programas de aplicación quedeban utilizarse con la interfaz invocable de QMF:v Una llamada a QMF sólo devuelve el control al programa de aplicación de

llamada después de que QMF finalice el procesamiento del mandato de QMF.v QMF es un estado interactivo no procesa una llamada.v El programa de aplicación y QMF se comunican con códigos de retorno y datos

de variables almacenados en la agrupación de variables o en el área decomunicaciones de la interfaz.

© Copyright IBM Corp. 1982, 2013 17

Page 30: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Todos los mandatos de QMF deben codificarse en letras en inglés y enmayúsculas.Si utiliza una característica de idioma nacional (NLF) de QMF, los mandatos deQMF deberán escribirse en el idioma de la NLF preferente. Los mandatostambién deben escribirse en mayúsculas o convertirse a mayúsculas medianteQMF. QMF convierte los mandatos a mayúsculas si la opción CASE de su perfilde QMF está establecida en UPPER. Establezca el idioma preferente al iniciarQMF proporcionando un valor para el parámetro DSQALANG en el mandatoSTART. Este valor se registra en la variable global DSQEC_NLFCMD_LANG.

v La longitud máxima de los mandatos pasados es de 2,048 bytes para losprogramas de REXX y de 32,768 bytes para el resto de lenguajes.

Este diagrama muestra cómo la aplicación pasa mandatos a través de la interfazinvocable a QMF.

Referencia relacionada:“Palabras claves del mandato START” en la página 56Puede especificar palabras clave en el mandato START.

El área de comunicaciones de la interfaz (DSQCOMM)QMF proporciona un área de comunicaciones de interfaz para cada lenguaje deprogramación soportado. Esta área contiene definiciones de códigos de razón y deretorno y definiciones de llamadas a función de QMF

El área de comunicaciones de interfaz define el almacenamiento de las variables decomunicaciones de la interfaz. Las variables almacenadas en esta área estánaccesibles para la aplicación de la interfaz invocable y QMF. Sin embargo, sólodebe permitir que QMF altere los valores. Asegúrese de que el programa deaplicación trate estas variables como de sólo lectura.

La interfaz invocable de REXX utiliza variables de comunicaciones de interfazproporcionadas por QMF en lugar de utilizar una área de comunicaciones.

1. Establecercomunicacióncon QMF

2. Emitir unmandato QMF

3. Obtenerinformación

de estado

4. Terminarcomunicacióncon QMF

Se iniciasesión QMF

Sesión de

aplicación

Interfaz

invocable QMF

QMF ejecutael mandato

QMF recuperainformaciónde estado

Sesión QMF

START

DSQ_RETURN_CODE=0

OBTENER GLOBAL

DSQ_RETURN_CODE=0Las variables globales sealmacenan en almacenamientode aplicaciones

SALIR

DSQ_RETURN_CODE=0

Mandato QMF

DSQ_RETURN_CODE=0

Figura 6. Cómo una aplicación utiliza la interfaz invocable de QMF para comunicarse conQMF

18 Developing DB2 QMF applications

Page 31: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

El área de comunicaciones de la interfaz invocable de QMF es necesaria para todaslas llamadas a la interfaz invocable. El almacenamiento del área de comunicacionesde la interfaz invocable es asignada por el programa que está utilizando QMF.

El mandato START establece una instancia o aparición exclusivas de una sesión deQMF. El mandato START sólo puede establecer una sesión de QMF:v En un espacio de direcciones de TSOv Desde una única transacción de CICS

Al ejecutar el mandato START, QMF actualiza las variables del área decomunicaciones de la interfaz.

El programa de aplicación nunca debe alterar estar variables, con las siguientesexcepciones:

DSQ_COMM_LEVELEstablezca DSQ_COMM_LEVEL con el valor DSQ_CURRENT_COMM_LEVELpara identificar el nivel de DSQCOMM. Esta excepción no se aplica a REXX.

DSQ_INSTANCE_IDSi llama a un programa de interfaz invocable desde dentro de QMF, debeestablecer DSQ_INSTANCE_ID en cero (0) en la primera llamada. Alestablecerlo, QMF restablece la variable en el valor fijado por el mandatoSTART inicial.

Todas las llamadas que siguen al mandato START deben pasar la dirección del áreade comunicaciones de la interfaz que corresponde a la instancia de QMF. Elprograma de aplicación es el responsable de apuntar al área de comunicaciones dela interfaz correcta.

Cada lenguaje de programación soportado tiene un área de comunicaciones deinterfaz exclusiva. Los programas de aplicación deben hacer referencia a variablespor nombre de variable en lugar de por valor si deben ser portables, pues losvalores pueden ser diferentes en otros sistemas.

Las variables dentro del área de comunicaciones de interfaz contienen lainformación que se expone a continuación:

Tabla 4. Campos DSQCOMM que no deben modificarse

Informaciónproporcionadapor la variable Descripción

Código deretorno

Indica el estado del procesamiento de QMF después de queQMFprocese un mandato

Identificador deinstancia

Identifica la instancia de QMF iniciada por el mandato START

ID de mensaje definalización

Contiene el ID de mensaje del mensaje que muestra QMF

Este campo se establece cuando termina cada mandato de QMF.Contiene el mensaje que QMF muestra al final de un mandato.

ID de mensaje deconsulta

Contiene el ID de mensaje del mensaje que se visualiza en el panel deconsulta cuando termina un mandato RUN QUERY

Este campo se establece cuando se produce un error cuando se estáejecutando una consulta. Contiene el mensaje que QMF muestra dentrodel objeto de consulta al final de un mandato.

Capítulo 3. La interfaz invocable y aplicaciones de QMF 19

Page 32: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 4. Campos DSQCOMM que no deben modificarse (continuación)

Informaciónproporcionadapor la variable Descripción

Parámetro delmandato STARTincorrecto

Contiene el nombre del parámetro incorrecto cuando el mandatoSTART falla debido a un error de parámetro

Indicador decancelación

Indica si el usuario ha cancelado el procesamiento mientras QMF estabaejecutando el mandato

Mensaje definalización

Contiene el mensaje de finalización que muestra QMF

Mensaje deconsulta

Contiene el texto del mensaje de consulta del mensaje que se visualizaen el panel de consultas al finalizar el mandato RUN QUERY

Por ejemplo, si ejecuta un objeto de consulta con un error, QMFmostrará un mensaje describiendo el error que ha impedido que laconsulta se ejecutara. A continuación, el campo del mensaje de consultacontendrá este texto del mensaje de error.

Referencia relacionada:Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.

Códigos de retornoEl sistema devuelve códigos de retorno después de cada llamada a la interfazinvocable de QMF. Los valores de código de retorno vienen descritos por el áreade comunicaciones de la interfaz proporcionados por QMF.

Los valores de códigos de retorno pueden ser distintos en otros sistemas. Si deseaque las aplicaciones sean portables entre sistemas, las aplicaciones deben hacerreferencia a los valores de estos códigos mediante los nombres de variable. Losnombres de las variables de código de retorno dentro del área de comunicacionesde interfaz están documentados con la especificación del lenguaje deprogramación.

Esta tabla muestra los posibles códigos de retorno para condiciones de la interfazinvocable.

Tabla 5. Códigos de retorno de interfaz invocable

Valor Explicación

0 Ejecución satisfactoria

4 La sesión de QMF marcada para su terminación por un mandato EXIT oEND

8 Ejecución fallida, pero el error no ha marcado la sesión para suterminación

16 Error grave: sesión marcada para su terminación

20 Developing DB2 QMF applications

Page 33: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Referencia relacionada:Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.

Mandatos para utilizar la interfaz invocable

Puede utilizar la interfaz invocable para emitir cualquier mandato de QMF queutilizaría en un procedimiento. Sin embargo, algunos mandatos tienen una sintaxisespecial para la interfaz invocable: START, GET GLOBAL, SET GLOBAL y TRACE.

Los mandatos START y TRACE sólo funcionan en la interfaz invocable. Parautilizar los mandatos GET GLOBAL y SET GLOBAL en una aplicación de interfazinvocable escrita en un lenguaje que no sea REXX, utilice la sintaxis ampliada paraestos mandatos.

Para obtener ejemplos de los mandatos START y SET GLOBAL en un lenguaje deprogramación, consulte la especificación de dicho lenguaje.Conceptos relacionados:Capítulo 8, “Mandatos de QMF en aplicaciones”, en la página 45Algunos mandatos determinados están diseñados para utilizarlos en aplicaciones ypuede crear sus propios sinónimos de mandatos.Referencia relacionada:“GET GLOBAL (sintaxis ampliada)” en la página 47Puede utilizar el mandato GET GLOBAL para acceder a variables globales de QMFde la aplicación. Para los lenguajes que no sean REXX, QMF proporciona unasintaxis ampliada del mandato GET GLOBAL.“SET GLOBAL (sintaxis ampliada)” en la página 53Para crear sus propias variables globales y utilizarlas en mandatos de QMF comovariables de sustitución, emita el mandato SET GLOBAL. También puede utilizar elmandato SET GLOBAL para establecer valores para variables globales de QMFpredefinidas, que empiezan por "DSQ."Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.

Inicio de QMF desde una aplicaciónAntes de ejecutar cualquier otro mandato desde una aplicación, debe iniciar QMF.Al utilizar la interfaz invocable, inicie QMF emitiendo el mandato START en laaplicación. Sólo puede tener una sesión de QMF a la vez.

La aplicación puede emitir un mandato START para probar si se ha iniciadoQMF.Si no se ha iniciadoQMF, se iniciará entonces. Si se inicia QMF, el código deretorno es de no cero, y recibirá el siguiente mensaje y número de mensaje:Ya se ha activado DSQ50720 QMF; no se permite una sesión secundaria.

Si el mandato START da como resultado un error no grave (un código de retornode 4 u 8), QMF se inicia y se establece una sesión. En este caso, debe emitir un

Capítulo 3. La interfaz invocable y aplicaciones de QMF 21

|||

||||

Page 34: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

mandato EXIT de QMF para detener QMF. Revise el contenido del área decomunicaciones de la interfaz o la salida de datos de rastreo de QMF paradeterminar la causa del error.

Para pasar parámetros a QMF, especifique las palabras clave del mandato deseadasen el mandato START.Referencia relacionada:“START” en la página 55Cuando se inicia QMF mediante la interfaz invocable, debe utilizarse el mandatoSTART.

Ejecución de la aplicación de la interfaz invocableCuando ejecute la aplicación de la interfaz invocable, deberá configurar el entornocomo sí fuera a ejecutar QMF de forma interactiva.

Para obtener información sobre cómo configurar el entorno y compilar y ejecutar laaplicación de la interfaz invocable, consulte la codificación de ejemplo en laespecificación del lenguaje apropiado.Referencia relacionada:Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.

La interfaz invocable en QMFSi necesita modificar un objeto de QMF desde un programa de usuario, puedeutilizar la interfaz invocable desde dentro de QMF. Por ejemplo, puede exportar oimportar objetos mediante la interfaz invocable durante una sesión de QMFinteractiva. Puede utilizar la interfaz invocable desde dentro de QMF utilizando elmandato de TSO para llamar a la aplicación. Puede ejecutar cualquier mandato deQMF desde la aplicación.

Restricción: No puede utilizar la interfaz invocable desde dentro de QMF mientrasesté en el entorno de CICS.

Debe establecer el identificador de instancia DSQCOMM (DSQ_INSTANCE_ID) encero (0) antes de llamar primero a QMF. QMF determina la instancia y lasactualizaciones de DSQ_INSTANCE_ID actuales para utilizarlas en llamadas deQMF subsiguientes.

Manejo de erroresCuando finaliza cada mandato de QMF, el área de comunicaciones DSQCOMMcontiene un texto de mensaje en la variable dsq_message_text y un código deretorno en la variable dsq_return_code.

Se asigna uno de los siguientes valores al código de retorno:

dsq_successTerminación satisfactoria del mandato

dsq_warningTerminación normal con avisos

22 Developing DB2 QMF applications

Page 35: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

dsq_failureEl mandato no se ha ejecutado correctamente

dsq_severeError grave; sesión de QMF terminada

Las variables y campos de cada área de DSQCOMM vienen documentadas en lasespecificaciones del lenguaje de programación.Referencia relacionada:Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.

Ejecución de programas de interfaz invocable en CICSPara ejecutar programas que utilicen la interfaz invocable de QMF, instálelos enCICS con su método normal de instalación de programas de CICS.

Además de los requisitos de CICS normales, deben aplicarse las siguientesconsideraciones a todos los programas de interfaz invocable de QMF que seejecutan en CICS:

EntornoCuando el programa llama al producto QMF, el programa adopta lasmismas características que el producto QMF interactivo; pasa a ser un granprograma conversacional.

QMF es un programa de lenguaje ensamblador que contiene mandatos deCICS. Puede editar los enlaces con otros programas de lenguajeensamblador o con programas soportados por la interfaz de programaciónde aplicaciones invocables. Cuando se llama a QMF utilizando un lenguajede alto nivel, primero deben editarse los enlaces del programa. Además, ladefinición de programa RDO (definición de recursos en línea) debeespecificar dicho lenguaje de alto nivel. Cada programa de alto nivel tieneconsideraciones y restricciones de CICS específicas.

En CICS, si desea sustituir cualquier parámetro de programa de QMFpredeterminado, debe especificar los valores de sustitución comoparámetros en el mandato START. Por ejemplo, la modalidadpredeterminada de la operación desde la interfaz invocable es lamodalidad de proceso por lotes. Para ejecutar una sesión de QMFinteractiva, debe emitir el mandato START con DSQSMODE=I.

Consideraciones sobre la región de CICSEl programa de usuario que contiene el módulo de comunicaciones de lainterfaz de QMF y el módulo de QMF principal debe ejecutarse en lamisma región o partición. Los recursos deQMF, tal como se describedurante la instalación de QMF, también deben asignarse a la región opartición de CICS que ejecuta QMF.

Base de datosLa transacción de CICS que invoca al programa debe describirse para DB2.

Capítulo 3. La interfaz invocable y aplicaciones de QMF 23

Page 36: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Conceptos relacionados:“Interfaces de programación de aplicaciones de QMF” en la página 4Hay dos interfaces de programación de aplicaciones para QMF: la interfazinvocable y la interfaz de mandatos.Información relacionada:

La documentación de DB2Búsqueda de información acerca de cómo describir transacciones de CICS paraDB2.

El Information Center de CICSBúsqueda de información acerca de aplicaciones de CICS, acerca de la utilizaciónde lenguajes de programación con CICS y acerca de cómo describir programaspara DB2.

24 Developing DB2 QMF applications

Page 37: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 4. Emisión de mandatos de QMF desde un diálogoISPF

Puede emitir mandatos de QMF desde un diálogo ISPF que se esté ejecutando bajoQMF mediante la interfaz de mandatos de QMF.

Restricción: La interfaz de mandatos de QMF requiere la ejecución de ISPF, peroISPF no se ejecuta en el entorno de CICS. Por ello, debe utilizar la interfazinvocable de QMF para el desarrollo de aplicaciones bajo CICS.

Al utilizar la interfaz de mandatos de QMF, QMF se comunica con el diálogomediante la agrupación de variables de ISPF, tal como se muestra en estediagrama.

Para utilizar la interfaz de mandatos de forma efectiva, también debe estarfamiliarizado con los servicios ISPF y las agrupaciones de variables.Información relacionada:

El Centro de publicaciones de IBMBúsqueda de publicaciones sobre ISPF.

Escritura de un programa que utilice la interfaz de mandatos: unejemplo

En este ejemplo, el usuario escribe el programa para visualizar un panel ISPF quele solicitará un nombre de consulta, ejecutará la consulta especificada y mostraráun informe.

Procedimiento1. Escriba la interfaz de mandatos del programa REXX:

ISPF

Agrupaciónde variables

ISPF

QMFPrograma deaplicación

Figura 7. Aplicación de la interfaz de mandatos de QMF que interactúa con QMF

© Copyright IBM Corp. 1982, 2013 25

Page 38: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

a. Mostrar el panel ISPF con los servicios DISPLAY: En este ejemplo, elnombre del panel es QRYNAMEADDRESS ISPEXEC "DISPLAY PANEL(QRYNAME)"

b. Ejecutar una consulta de QMF que se base en una entrada de usuario delservicio DISPLAY anterior. La variable de ISPF QNAME contiene el nombrede la consulta de QMFADDRESS ISPEXEC "SELECT PGM(DSQCCI) PARM(RUN QUERY" QNAME ")"

c. Mostrar el resultado de la consulta:ADDRESS ISPEXEC "SELECT PGM(DSQCCI) PARM(INTERACT)"

2. Llamar al programa con el mandato de TSO desde la línea de mandatos deQMF. Por ejemplo, si el programa se denomina GETINFO, utilice este mandato:TSO GETINFO

Invocación de la interfaz de mandatosLa interfaz de mandatos es un programa denominado DSQCCI. Puede invocarladesde un programa mediante el servicio ISPF SELECT.

Para iniciar la interfaz de mandatos, primero inicie ISPF. A continuación, inicieQMF utilizando el servicio ISPF SELECT para llamar a la interfaz de mandatos deQMF (DSQCCI). Puede pasar mandatos de QMF utilizando la opción PARM delmandato ISPF SELECT PGM.

Tras iniciar la interfaz de mandatos, puede pasar mandatos de QMF que deseeejecutar utilizando el parámetro PARM del mandato SELECT PGM de ISPF:SELECT PGM(DSQCCI) PARM(mandato_qmf)

Todos los mandatos de QMF especificados como parámetros para la interfaz demandatos deben estar en mayúsculas, independientemente del valor del perfil deQMF. ISPF no convierte los mandatos de minúsculas a mayúsculas. Si especificalos mandatos de QMF en minúsculas, QMF no los reconocerá.

Si desea utilizar solicitudes de mandato de QMF desde la aplicación ISPF, puedeemitir el mandato INTERACT. Siga el mandato INTERACT con el mandato deQMF para el que necesita que se abra la solicitud y finalice la sentencia con unainterrogación. Por ejemplo, para visualizar el panel de consultas RUN QUERY,emita el siguiente mandato:SELECT PGM(DSQCCI) PARM(INTERACT RUN QUERY ?)

El servicio SELECT necesita que utilice ampersands dobles en un mandato RUNQUERY. La utilización de ampersands dobles impide que ISPF interprete lavariable como una de las suyas.

En la invocación, no especifique la opción NEWPOOL ni NEWAPPL. Si omite lasopciones NEWPOOL y NEWAPPL, se asegura de que la interfaz de mandatospueda acceder a las variables de la aplicación. La interfaz de mandatos utiliza laagrupación compartida para establecer la comunicación entre QMF y su aplicación.

El mandato ENDEl mandato END finaliza el programa DSQCCI y devuelve el control a laaplicación de llamada al emitirla mientas se está ejecutando la interfaz demandatos. La sesión de QMF sigue activa.

26 Developing DB2 QMF applications

Page 39: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

QMF establece la variable global DSQCSESC para que marque la terminación de lasesión si se encuentra con un mandato EXIT o un error grave durante unainvocación de interfaz de mandatos. Cuando el programa que ha llamado aDSQCCI finaliza y devuelve el control aQMF, termina la sesión de QMF.

Variables en la interfaz de mandatosEl mandato STATE proporciona el valor actual de cada variable proporcionada porQMF. El mandato STATE sólo se puede utilizar en la interfaz de mandatos. Puedecolocar las variables de QMF en la agrupación de variables ISPF mediante elmandato VPUT.Referencia relacionada:Apéndice B, “Variables globales de QMF”, en la página 213QMF proporciona muchas variables globales que le ayudan a controlar aspectos dela sesión de QMF, los mandatos de QMF y la pantalla del panel. Las variablesglobales también le ayudan a controlar el comportamiento de las funciones deQMF en procedimientos y aplicaciones.

Códigos de retorno de la interfaz de mandatosLos códigos de retorno de la interfaz de mandatos pueden ser positivos o cero. Elvalor cero indica una ejecución satisfactoria. Un valor positivo indica que laejecución ha fallado o, que de alguna manera, ha sido anómala. Los códigos deretorno son los mismos, independientemente del lenguaje de la aplicación.

Los códigos de retorno se visualizan en una variable del exec o la CLIST delusuario. Si ejecuta un exec de REXX, el código de retorno se encuentra en lavariable de REXX denominada RC; si ejecuta una CLIST, el código de retorno seencuentra en la variable de&LASTCC.

El siguiente ejemplo muestra un exec que examina un código de retorno. Elejemplo muestra cómo ejecutar una consulta y una prueba para un error con el RCde la variable de REXX:ADDRESS ISPEXEC SELECT PGM(DSQCCI) PARM(RUN QUERYA (FORM=FORMA))Select

When (RC = 0) Then nopWhen (RC = 64) Then

Say "You must run QMF with ISPF to use command interface."When (RC = 100) Then

Say "You need to start QMF before you begin your application"Otherwise

Say "Unexpected error ("RC") from QMF command interface."Fin

Puede colocar el código para errores de manejo en módulos del programa y enexec o CLIST.

Códigos de retorno del 0 al 16

Los códigos de retorno del 0 al 16 describen el procesamiento de QMF delmandato pasado con la interfaz de mandatos. Junto con el código, la interfaz demandatos devuelve los valores de las variables de mensaje de mandatos de QMFen la agrupación compartida de ISPF de la aplicación.

Capítulo 4. Emisión de mandatos de QMF desde un diálogo ISPF 27

Page 40: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 6. Códigos de retorno del 0 al 16

Valor Explicación

0 Ejecución satisfactoria

4 La sesión de QMF marcada para su terminación por un mandato EXIT oEND

8 La ejecución ha fallado, pero el error no ha causado que la sesión semarque para su terminación

16 Error grave: sesión marcada para su terminación

Sólo se produce un código de retorno de 4 en el mandato que ha causado que lasesión se marcara para la terminación. Si, a continuación, la aplicación intentaejecutar otro mandato, QMF devuelve otro valore de código de retorno a laaplicación.

Códigos de retorno de 20 o superiores

Estos códigos normalmente reflejan alguna anomalía en la interfaz de mandatos(DSQCCI). La anomalía impide que la interfaz copie una variable en la agrupacióncompartida de la aplicación. En consecuencia, es posible que las variables de QMFno sean válidas o también es posible que no se hayan establecido. El mismoresultado puede ser verdadero en las variables STATE si el programa utiliza elmandato STATE. (Se establece una variable si se copia en la agrupación compartidade la aplicación.)

Estos códigos de retorno normalmente indican más errores serios que los códigosde retorno en el rango del 0 al 16. Es posible que algunos códigos de retornorequieran los servicios de IBM Software Support.

En esta tabla, variables compartidas hace referencia a las variables de QMF (y lasvariables STATE, si el mandato actual es el mandato STATE). Algunos códigosindican que el mandato se ha ejecutado pero que no se han establecido lasvariables compartidas. QMF ha ejecutado el mandato STATE de forma correcta,pero la interfaz de mandatos no ha podido establecer QMF ni las variables STATEcompartidas y actualizadas. La razón de la anomalía se describe en la explicacióndel código de error.

Tabla 7. Códigos de retorno de 20 o más

Valor Explicación

20 Una rutina de salida de usuario denominada interfaz de mandatos; estasllamadas siempre son no válidas. El mandato que se ha pasado a lainterfaz de mandatos no se ha ejecutado. No se han establecido lasvariables compartidas.

24 Se ha producido un error en un mandato de Interactive SystemProductivity Facility (ISPF). Se ha ejecutado el mandato que se ha pasadoa la interfaz de mandatos. No se han establecido las variablescompartidas.

32 Se ha producido un error en un mandato VREPLACE de ISPF. Se haejecutado el mandato que se ha pasado a la interfaz de mandatos. No sehan establecido las variables compartidas.

36 Se ha producido un error en un mandato VPUT de ISPF. Se ha ejecutadoel mandato que se ha pasado a la interfaz de mandatos. No se hanestablecido las variables compartidas.

28 Developing DB2 QMF applications

Page 41: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 7. Códigos de retorno de 20 o más (continuación)

Valor Explicación

40 Se ha producido un error en un mandato VREPLACE de ISPF. Este códigosólo se aplica a la ejecución del mandato STATE. Se ha ejecutado elmandato que se ha pasado a la interfaz de mandatos, pero no se hanestablecido las variables compartidas.

44 Se ha producido un error en un mandato VPUT de ISPF. Este código sólose aplica a la ejecución del mandato STATE. Las variables de QMF se hanestablecido, pero las variables STATE no.

60 Se ha efectuado una llamada no válida a la interfaz de mandatos. Elmandato que se ha pasado a la interfaz de mandatos no se ha ejecutado.No se han establecido las variables compartidas.

64 Este error se emite cuando se ejecuta DSQCCI y ISPF no está activo. Porejemplo, el usuario ha llamado a DSQCCI sin utilizar un mandato ISPFSELECT PGM.

100 Este error se produce cuando una aplicación intenta emitir un mandato deQMF cuando QMF no está activo. Inicie QMF antes de iniciar laaplicación. El mandato que se ha pasado a la interfaz de mandatos no seha ejecutado. No se han establecido las variables compartidas.

104 El ancla no se ha ubicado. El mandato que se ha pasado a la interfaz demandatos no se ha ejecutado. Se han establecido las variables compartidaspero no son válidas.

Capítulo 4. Emisión de mandatos de QMF desde un diálogo ISPF 29

Page 42: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

30 Developing DB2 QMF applications

Page 43: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 5. ADDRESS QRW y el entorno de mandatos de QMF

Cuando se inicia QMF en TSO, ISPF o z/OS nativo, QMF crea un entorno demandatos de REXX denominado QRW. Si va a ejecutar un programa REXX, puedeestablecer el entorno de mandatos predeterminado en QRW emitiendo el mandatoADDRESS QRW de REXX ADDRESS. Con ADDRESS QRW, QMF permanece en elentorno de mandatos predeterminado hasta que se emite otro mandato ADDRESS.

Restricción: ADDRESS QRW no se admite en el entorno de CICS.

También puede dirigir un único mandato para que el entorno de QRW lo ejecuteemitiendo el mandato ADDRESS de REXX seguido por el mandato de QMF:ADDRESS QRW mandato_qmf

En esta situación, QMF sólo es el entorno de mandatos para el mandato que siguea la sentencia ADDRESS QRW.

Cuando utilice un procedimiento de QMF con lógica, QRW seré el entorno demandatos predeterminado.

El siguiente ejemplo muestra cómo utilizar el entorno de mandatos de QMF:...call dsqcix "START (DSQSMODE=INTERACTIVE"if dsq_return_code=dsq_severe | dsq_return_code=dsq_failure

then exit dsq_return_code

ADDRESS QRW"RUN PROC MONDAY_P"if dsq_return_code=dsq_severe | dsq_return_code=dsq_failure

then exit dsq_return_code

"EXIT"if dsq_return_code=dsq_severe | dsq_return_code=dsq_failure

then exit dsq_return_code...

© Copyright IBM Corp. 1982, 2013 31

Page 44: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

32 Developing DB2 QMF applications

Page 45: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 6. Escritura de aplicaciones QMF que utilizanservicios ISPF

Puede eludir los paneles de QMF escribiendo aplicaciones que tengan sus propiasinterfaces de usuario. Puede utilizar la interfaz invocable o la interfaz de mandatospara escribir aplicaciones que utilizan ISPF.

Restricción: ISPF no se ejecuta en el entorno de CICS, por lo que los servicios ISPFno están disponibles en CICS.Conceptos relacionados:Capítulo 3, “La interfaz invocable y aplicaciones de QMF”, en la página 17Los lenguajes de programación pueden utilizar la interfaz invocable de QMF paraejecutar mandatos de QMF.Capítulo 4, “Emisión de mandatos de QMF desde un diálogo ISPF”, en la página25Puede emitir mandatos de QMF desde un diálogo ISPF que se esté ejecutando bajoQMF mediante la interfaz de mandatos de QMF.

Inicio y ejecución de QMF desde una aplicación ISPFCuando inicie y ejecute QMF utilizando la interfaz invocable desde una aplicaciónISPF, deberá seguir unas reglas determinadas.

Cuando escriba una aplicación de interfaz invocable que utilice ISPF, deberáasegurarse de seguir estos requisitos:v La aplicación de la interfaz invocable debe coincidir con el lenguaje del diálogo

ISPF.Por ejemplo, si el diálogo ISPF es un programa PL/I, deberá utilizar la interfazinvocable de QMF para PL/I para escribir la aplicación.

v Debe utilizar el identificador de idioma nacional correcto.Debe iniciar la aplicación ISPF con un ID de DSQn, donde n es un identificadorde característica de idioma nacional (National Language Feature - NLF). Este IDde aplicación impide que QMF sustituya el entorno ISPF, como los valores de lasteclas de función y las etiquetas. El ID también garantiza que el entorno ISPFpermanezca intacto incluso después de que se inicieQMF. Por ejemplo, estasentencia empieza un programa MYPROG de PL/I que iniciaQMF utilizando elmandato START de la interfaz invocable:SELECT PGM(MYPROG) NEWAPPL(DSQn)

v Utilice los mandatos GET GLOBAL o SET GLOBAL en la aplicación en lugar delmandato STATE para establecer y recuperar valores de variable.El mandato STATE sólo funciona con variables que contienen información deestado. Los mandatos GET GLOBAL y SET GLOBAL funcionan para todas lasvariables globales de QMF. Sin embargo, no puede establecer variables globalesque sean de sólo lectura.

© Copyright IBM Corp. 1982, 2013 33

||||

Page 46: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).“Palabras claves del mandato START” en la página 56Puede especificar palabras clave en el mandato START.“Variables globales para información de estado no relacionada con el perfil” en lapágina 215Las variables globales DSQAO contienen información de estado o valores deparámetros o distintivos. Ninguna de estas variables globales se puede modificarmediante el mandato FIJAR GLOBAL.“Variables globales para información de estado relacionada con el perfil” en lapágina 220Las variables globales DSQAP almacenan información relacionada con los valoresde perfil de QMF. Ninguna de estas variables globales se puede modificarmediante el mandato FIJAR GLOBAL.

Ejecución de consultas que contienen variablesLas aplicaciones que utilizan servicios ISPF pueden ejecutar consultas quecontienen variables.

Puede ejecutar estas consultas desde una aplicación que utilice servicios ISPF deuna de las tres siguientes maneras:v Utilice ISPF archivo de personalización de servicios.

Con esta técnica puede representar la consulta mediante un esqueleto deadaptación de archivos ISPF. En dicho esqueleto, las partes de la consulta quepueden cambiar se visualizan como variables de diálogo de ISPF. Después deotorgar los valores apropiados a estas variables, el programa iniciarádeterminados servicios de adaptación de archivos de ISPF. El resultado es unarchivo secuencial que contiene la consulta.A continuación, el programa puede importar la consulta en el almacenamientotemporal de QMF y hacer que se ejecute QMF. Los mandatos IMPORT y RUNnecesarios se pueden ejecutar mediante la interfaz invocable o la interfaz demandatos.Para utilizar esta técnica, debe saber cómo definir variables de diálogo de ISPFen su el programa que utiliza el servicio de diálogo de ISPF.

v Utilice el editor de Program Development Facility (PDF) para crear objetos deQMFPuede utilizar el editor de PDF con macros de edición de PDF para diseñar ycontrolar entradas de datos a consultas, procedimientos, formularios y perfiles.Puede utilizar REXX para escribir macros PDF.

v Cree una consulta que utilice un diálogo de ISPF.El programa puede utilizar servicios de visualización de ISPF para visualizaruna pantalla y crear un archivo basado en la entrada del usuario. Acontinuación, este archivo, que contiene una consulta SQL, se importa en QMF yse ejecuta.

34 Developing DB2 QMF applications

Page 47: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Información relacionada:

El Centro de publicaciones de IBMBúsqueda de publicaciones sobre ISPF.

Inicio de un programa que utiliza servicios ISPF desde dentro de QMFSi desea iniciar el programa ISPF desde dentro de QMF, debe llamar al programadesde un procedimiento lineal o un procedimiento con lógica.

Para llamar al programa, utilice el servicio PGM SELECT de ISPF incluyendo elsiguiente mandato en el procedimiento:ADDRESS ISPEXEC "SELECT PGM(nombre de programa)"

Utilice la palabra clave CMD para indicar al ISPF que está ejecutando el programacomo una función de diálogo ISPF. La sintaxis de este mandato es:ADDRESS ISPEXEC "SELECT CMD(nombrecmd)"

oADDRESS ISPEXEC "SELECT CMD(parámetros nombrecmd)"

En esta sentencia, nombrecmd es el nombre del mandato de la interfaz invocable.

Servicios ISPF en un procedimiento con lógicaDebe realizar la transferencia desde el diálogo del programa de QMF a un diálogode mandatos ISPF para ejecutar los mandatos ISPF desde un procedimiento deQMF con lógica que se esté ejecutando bajo ISPF.

Para establecer el entorno ISPF correcto y ejecutar un programa que contenga losmandatos ISPF, utilice la siguiente sentencia ISPF SELECT CMD con la palabraclave CMD:ADDRESS ISPEXEC "SELECT CMD(programa de usuario)"

En esta sentencia, programa de usuario es el programa que contiene los mandatosISPF.

Por ejemplo, si el programa que contiene los mandatos ISPF se denominaDIALOG, incluya el siguiente mandato en el procedimiento con lógica:ADDRESS ISPEXEC "SELECT CMD(DIALOG)"

También puede utilizar un mandato de QMF TSO para ejecutar el programa quecontiene mandatos ISPF (por ejemplo, TSO DIALOG). En tal caso, QMF emite lasentencia ISPF SELECT CMD para el usuario.

Al ejecutar QMF bajo ISPF, un procedimiento con lógica que inicia un programaque requiere servicios ISPF debe utilizar el entorno ISPF SELECT CMD. Porejemplo, supongamos que está ejecutando QMF bajo ISPF y el procedimiento conlógica emite el mandato DSN de DB2. Puesto que el mandato DSN utiliza serviciosISPF, utilice uno de los siguientes mandatos para emitir el mandato DSN:ADDRESS ISPEXEC "SELECT CMD(DSN)"

oADDRESS ISPEXEC "SELECT CMD(DSNEXEC)"

Capítulo 6. Escritura de aplicaciones QMF que utilizan servicios ISPF 35

Page 48: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

En la segunda sentencia, DSNEXEC es un programa que contiene la sentenciaADDRESS TSO DSN.Información relacionada:

El Centro de publicaciones de IBMBúsqueda de publicaciones sobre ISPF.

El mandato EDIT con ISPFCuando se ejecuta la aplicación QMF bajo ISPF, puede editarse la consulta SQL o elprocedimiento de QMF utilizando el mandato EDIT QUERY o el mandato EDITPROC.

Si emite el mandato EDIT de QMF desde un panel PROC o un panel QUERY, noserá necesario que especifique los tipos de objeto PROC ni QUERY. EDITpresupone estos valores al invocarlo desde los respectivos paneles. De formapredeterminada, el mandato EDIT de QMF coloca su procedimiento o consulta enuna sesión del editor PDF. QMF inicia el editor PDF utilizando el ID de aplicaciónde QMF DSQn, donde n es el identificador de la NLF. QMF también establece lasteclas de función y la ubicación de la línea de mandatos para que coincidan con laaplicación de QMF.

Para sustituir el editor predeterminado, utilice los mandatos EDIT QUERY y EDITPROC de la siguiente manera:EDIT QUERY (E=nombreEDIT PROC (E=nombre

En estas sentencias, nombre puede ser uno de los siguientes valores:v Un editor que tenga disponiblev El nombre de un programa de REXX que especifique un ID de aplicación que no

sea el predeterminado. El ID de aplicación predeterminado es DSQn, donde n esel identificador de identificador de la NLF que está utilizando)Utilice un ID de aplicación diferente del ID de aplicación predeterminado deQMF si desea que las teclas de función sean distintas de las teclas queproporciona QMF.

Si utiliza opciones PDF EDIT que requieren miembros del conjunto de datos PDFPROFILE, debe crear dichos miembros. Por ejemplo, la opción PDF EDITRECOVERY requiere un miembro del conjunto de datos DSQnEDRT PROFILE(donde n es el carácter de la NLF apropiado). La NLF debe instalarse antes deemitir el mandato.

36 Developing DB2 QMF applications

Page 49: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca del mandato EDIT de QMF.

Aplicaciones de depuración e ISPFLa actividad de rastreo de QMF puede ayudarle a rastrear la actividad de QMF envarios niveles de detalle. Para ayudarle a depurar aplicaciones de forma másefectiva que utilicen ISPF, también puede utilizar el servicio de registro de ISPF yel servicio de prueba de diálogo de ISPF. Estos servicios complementan al recursode rastreo de QMF.

El servicio de registro de ISPF

Puede utilizar el servicio de registro ISPF para escribir un mensaje en el archivo deregistro ISPF. Por ejemplo, en REXX, el mandato de ISPF para escribir un mensajeen el registro ISPF es:ADDRESS ISPEXEC LOG MSG (ID-mensaje)

En esta sentencia, id-mensaje es el código de identificación del mensaje que deberecuperarse de la biblioteca de mensajes y escribirse en el registro.

El servicio de prueba del diálogo PDF

Si su sitio tiene PDF, puede utilizar el servicio de prueba de diálogo PDF pararegistrar llamadas de servicio a la aplicación ISPF en el archivo de registro ISPF. Deforma adicional, puede utilizar la opción de registro del servicio de prueba dediálogo PDF para examinar el contenido del archivo de registro o del conjunto dedatos. También puede imprimir el archivo de registro o el conjunto de datoscuando salga de ISPF.

El servicio de prueba de diálogo tiene muchas más opciones que resultan muyútiles para depurar la aplicación. Por ejemplo, puede realizar la depuración deforma interactiva. Puede ejecutar partes de la aplicación o toda la aplicación,examinar los resultados, modificar la aplicación y volver a ejecutarla. Tambiénpuede utilizar servicios de prueba de diálogo para conseguir estos objetivos:v Iniciar los paneles de selección, los procedimientos de mandato y los programasv Mostrar panelesv Añadir variables y modificar valores de variablesv Ejecutar servicios de diálogo ISPFv Añadir, modificar y suprimir definiciones de punto de interrupciónv Añadir, modificar y suprimir definiciones de rastreo variable y funciones

Para crear, modificar y cambiar definiciones de rastreo, utilice la opción de rastreo(TRACES) del servicio de prueba del diálogo. Utilice también esta opción parasupervisar llamadas de servicio de diálogo y el uso de variables de diálogo.Durante el procesamiento, si se cumple cualquiera de estas definiciones de rastreo,se escribirá la salida del rastreo en el registro de ISPF. Puede utilizar la opción

Capítulo 6. Escritura de aplicaciones QMF que utilizan servicios ISPF 37

Page 50: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

LOG de los servicios de prueba de diálogo para examinar el registro de ISPF oexaminar la salida impresa al salir de ISPF.Conceptos relacionados:Capítulo 10, “Depuración de las aplicaciones de QMF”, en la página 147Además del manejo de errores, QMF proporciona recursos de depuración para lasaplicaciones de interfaz invocable.Información relacionada:

El Centro de publicaciones de IBMBúsqueda de publicaciones sobre ISPF.

38 Developing DB2 QMF applications

Page 51: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 7. Escritura de aplicaciones bilingües

Muchas aplicaciones empresariales necesitan ejecutarse en distintos idiomasnacionales. Puede escribir una aplicación en inglés y ejecutarla en cualquier idiomanacional que QMF soporte.

Cada idioma nacional que QMF soporta se denomina característica de idiomanacional (NLF). Una NLF proporciona al usuario una sesión de QMF que se adaptaa un idioma nacional específico.

QMF proporciona soporte bilingüe para mandatos y formularios. Puede ejecutarmandatos de QMF en inglés y visualizar formularios ingleses en cualquier NLF.Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

Comparación del inglés con los entornos de característica de idiomanacional

Aunque los aspectos del entorno de la sesión QMF son los mismos sin importarqué características de idioma nacional (National Language Features - NLF) seutilicen, existen algunas diferencias. Si no se instala ninguna NLF, el único entornode sesión QMF disponible es el entorno del idioma inglés.

Similitudes del entorno

Estas similitudes son las más importantes en los entornos de la sesión QMF sinque importe qué NLF se esté utilizando:

PrestacionesEn general, puede hacer lo mismo en una sesión NLF que lo que puederealizar en una sesión con el inglés como idioma. Puede crear objetos enobjeto y guardarlos en la base de datos, formatear e imprimir informes yemitir mandatos SQL. También puede ejecutar una consulta asistida,consultas SQL y QBE y procedimientos de QMF. La diferencia entre losentornos no radica en lo que puede hacer, sino en la forma que necesitapara introducir entradas y los idiomas que se vayan a visualizar

SQL y QBELos verbos, operadores y palabras clave de los lenguajes SQL y QBE no setraducen.

Códigos de uso para formulariosLos códigos son idénticos; no se traducen.

Mandatos del sistemaLos mandatos de TSO y CICS todavía se pueden emitir desde QMFmediante el mandato de TSO o CICS. Estos mandatos no se ven afectadospor la traducción: introduzca TSO o CICS y, a continuación, el mandato quedebe ejecutarse. Seguidamente, introduzca el mandato exactamente de lamisma forma que si se estuviera ejecutando fuera de QMF.

© Copyright IBM Corp. 1982, 2013 39

Page 52: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Diferencias del entorno

Algunas diferencias entre el entorno NLF y el entorno del idioma inglés son:

El lenguaje de mandatos de QMFCada característica de idioma nacional (NLF) tiene un completo conjuntode verbos y palabras clave de QMF traducidos. Estos verbos y palabrasclave traducidos deben aparecer en los mandatos de QMF cuando se opereen el entorno de idioma de una característica de idioma nacional. Para unacaracterística de idioma nacional, se pueden traducir estas palabras. Porejemplo, supongamos que en la característica de idioma nacional Alemán,el verbo DISPLAY y la palabra clave PROC se traducen por ANZEIGEN yPROZEDUR. Durante la sesión de la NLF Alemán, puede emitir elmandato ANZEIGEN PROZEDUR pero no puede emitir el mandatoDISPLAY PROC.

Algunos elementos del lenguaje de QMF son sinónimos de mandato y sepueden traducir. Como resultado, cada NLF tiene su propia tabla desinónimos de mandatos con nombres exclusivos. Cuando se instala la NLF,se crea su tabla de sinónimos de mandatos y el perfil de la NLF indica elnombre de la tabla de sinónimos de mandatos para dicha NLF.

Paneles y mensajes de QMFCada característica de idioma nacional (NLF) tiene un completo conjuntode mensajes y paneles QMF traducidos. Al igual que los verbos y laspalabras clave de los mandatos de QMF, estos mensajes y paneles puedenestar traducidos o pueden no estarlo. En la mayoría de casos lo están.Dentro de los paneles y los mensajes, se pueden traducir las partes detexto fijas. La información puede variar dentro de cada panel o mensajepues, por ejemplo, los nombres de consulta no se traducen.

Entrada de panel permitibleMuchos paneles de QMF que requieren entradas del usuario restringen elrango de algunas entradas a un pequeño conjunto de palabras clave, quese traducen. Algunos ejemplos de estos paneles incluyen paneles desolicitud y paneles de formulario. Las respuestas YES y NO en inglés, porejemplo, son JA y NEIN en alemán.

Valores de parámetro de perfilEn un entorno multilingüe, los usuarios tienen un perfil separado paracada NLF disponible que pueden utilizar para una sesión de QMF. Paracada uno de estos perfiles, los parámetros son los mismos y tienen losmismos significados, pero se traducen los nombres de los parámetros.También se traducen algunos valores de parámetro determinados.

Por ejemplo, en un perfil en inglés, el parámetro CASE puede tener elvalor UPPER, STRING o MIXED. En el perfil en alemán, el parámetroCASE es el parámetro SCHRIFT y los valores válidos son GROSS, KETTE yGEMISCHT.

Objetos de formulario exportados y guardadosUtilice los mandatos SAVE, EXPORT e IMPORT para especificar el idiomaen el que desea que se guarden los objetos de formulario. Puedeguardarlos en inglés o en el idioma preferente de su sesión actual.

Tablas y consultas de ejemplo

IBM proporciona versiones traducidas de las tablas y consultas de ejemploen inglés, excepto para las características del sueco y las mayúsculas. No sesuministran tablas de ejemplo para estas características.

40 Developing DB2 QMF applications

Page 53: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Información relacionada:

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de cómo crear sinónimos de mandato

Consulta de DB2 QMFBúsqueda de información acerca de los mandatos SAVE, EXPORT e IMPORT.

Creación de objetos para utilizarlos en aplicaciones bilingüesLos objetos en una aplicación bilingüe son como cualquier otro objeto de QMF. Laclave es la que se crea o se guarda en inglés.

La creación o guardado de aplicaciones bilingües en inglés depende del objetoespecífico:

ConsultasPuede crear consultas asistidas y QBE en cualquier idioma soportado porlas NLF de QMF o puede crear consultas SQL en inglés.

FormulariosCree siempre formularios en el idioma preferente. Guárdelos utilizando elidioma predeterminado con el mandato SAVE (ENGLISH) o utilice elidioma preferente.

La variable global DSQEC_FORM_LANG controla el idioma en el que seguarda, importa o exporta el formulario. El valor predeterminado es 1 parainglés. El valor cero especifica que deben guardarse, importarse oexportarse los formularios en el idioma de la sesión preferente.

ProcedimientosPuede crear procedimientos en inglés o en el idioma preferente.

AnalíticaPuede crear objetos de análisis en inglés o en el idioma preferente.

Puede traducir al inglés un formulario que cree y guarde en una NLF emitiendoun mandato SAVE. Por ejemplo, el mandato francés para guardar un formulariodenominado SEMAINE_F en inglés como WEEKLY_F sería:SAUVER FORMAT SEMAINE_F EN WEEKLY_F (LANGUE=ANGLAIS

Este mandato convierte el formulario de la NLF en un formulario en inglés quepuede utilizar en la aplicación bilingüe.Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

La variable de idioma de los mandatosPara utilizar mandatos en inglés en una sesión NLF, establezca la variable delidioma preferente, DSQEC_NLFCMD_LANG, en inglés. Utilice esta variable paraconmutar entre el inglés y el idioma preferente de la sesión NLF.

Por ejemplo, supongamos que la aplicación es un procedimiento denominadoWEEKLY_P. Los mandatos aquí mostrados demuestran cómo conmutar entre elinglés y el idioma NLF preferente.

Capítulo 7. Escritura de aplicaciones bilingües 41

||

Page 54: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

"GET GLOBAL (CURR_LANG=DSQEC_NLFCMD_LANG" �1�"SET GLOBAL (DSQEC_NLFCMD_LANG=’1’" �2�"RUN PROC WEEKLY_P" �3�"SET GLOBAL (DSQEC_NLFCMD_LANG=CURR_LANG" �4�

Estos mandatos pueden formar parte de cualquier aplicación de QMF válida,desde un procedimiento inicial a un programa de lenguaje de alto nivel, perodeben estar en este orden:

�1� Esta línea del procedimiento guarda el valor del idioma preferente en unavariable.

El mandato GET GLOBAL guarda el valor del idioma preferente en unavariable denominada CURR_LANG.

�2� Esta línea del procedimiento establece el idioma preferente en el idiomapara el que se ha escrito la aplicación.

La aplicación WEEKLY_P de este ejemplo se ha escrito con mandatos eninglés. Por este motivo, el mandato SET GLOBAL establece el idiomapreferente en inglés fijando la variable DSQEC_NLFCMD_LANG en 1.

�3� Esta línea del procedimiento ejecuta la aplicación.

Después de establecer la sesión de QMF en inglés, se puede ejecutar laaplicación del ejemplo. Los mandatos del usuario deben estar en inglés. Noobstante, si un usuario pulsa una tecla de función, se supone que elmandato subyacente estará en el idioma preferente.

QMF presupone que los paneles de solicitud están en el idioma preferentedel usuario. Para los paneles de solicitud de mandato EXPORT e IMPORT,el tipo de conjunto de datos predeterminado, el tipo de cola de datos o elnombre de la vía de acceso también están en el idioma preferente.

El perfil de QMF en vigor para la sesión es el perfil del usuario bajo el quese ha establecido la NLF cuando se ha iniciado la aplicación. El perfil deQMF del idioma preferente no es el perfil en vigor. Por ejemplo, unusuario que ejecute QMF tanto en inglés como en alemán tiene perfiles deQMF tanto ingleses como alemanes. Si el usuario inicia una sesión de QMFbajo la NLF Alemán, estarán en vigor las opciones en el perfil alemán deQMF. A continuación, el usuario establece la variableDSQEC_NLFCMD_LANG en inglés para ejecutar un procedimiento escritocon mandatos en inglés. En tal caso, las opciones del perfil de QMF enalemán siguen en vigor en toda la sesión.

�4� Esta línea del procedimiento retrocede al idioma preferente.

Cuando finaliza la aplicación, establezca la variable de idioma de losmandatos en su valor original tal como se muestra en el ejemplo.

Procedimientos iniciales en aplicaciones bilingüesSi la aplicación inicia QMF y ejecuta un procedimiento inicial, QMF ejecuta dichoprocedimiento cada vez que el usuario emite el mandato END. QMF termina sieste procedimiento se encuentra un error.

Por ejemplo, un usuario que ejecuta QMF en inglés emite un mandato END en elidioma preferente. QMF interpreta el mandato como un error y termina.

Puede evitar esta situación de una de las dos siguientes formas:v Cambiando el procedimiento inicial para manejar aplicaciones bilingües.

42 Developing DB2 QMF applications

Page 55: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Un procedimiento inicial bilingüe incluye los mandatos aquí mostrados:"GET GLOBAL (CURR_LANG=DSQEC_NLFCMD_LANG""SET GLOBAL (DSQEC_NLFCMD_LANG=0".../* Mandatos QMF en idioma preferente */..."SET GLOBAL (DSQEC_NLFCMD_LANG=CURR_LANG"

v Evitando ejecutar el procedimiento inicial después del mandato END.Puede establecer la variable DSQEC_RERUN_IPROC en 0 de forma que QMF noejecute el procedimiento inicial cuando el usuario emita el mandato END.

Mandatos sólo en inglésPara la mayoría de mandatos de QMF, debe cambiar la variable de idiomapreferente antes de ejecutar en mandato en inglés. No obstante, algunos mandatosdeben emitirse en inglés aunque la variable de idioma preferente no se hayaestablecido en inglés.

Por ejemplo, tiene una aplicación interactiva que desea escribir en inglés y ejecutaren una NLF. Debe utilizar el mandato MESSAGE para enviar los mensajespersonalizados por el usuario. Además, necesita el mandato INTERACT paravisualizar el mensaje como en este ejemplo (que se puede ejecutar en una sesiónNLF en francés):

Los siguientes mandatos en inglés funcionan con cualquier NLF:v GET GLOBALv INTERACTv MESSAGEv SET GLOBALv PROYECTOv TRACE

Entornos multilingüesCuando se instalan una o varias características de idioma nacional, se crea unentorno multilingüe. Con la autorización adecuada, puede elegir un idiomapreferente para cada sesión de QMF.

Por ejemplo, puede elegir el inglés para una sesión y el alemán para otra, siemprey cuando se haya instalado la característica de idioma nacional Alemán. Aunqueno puede conmutar entre idiomas durante una sesión de QMF, puede conmutar lavariable de idioma de mandato. Finalice la sesión actual e inicie otra para obtenerel entorno de idioma apropiado.

proceed_text = ’Continue...’"RUN WEEKLY_Q" /* Utilizar mandato RUN inglés */"SET GLOBAL (DSQEC_NLFCMD_LANG=0" /* volver a francés */"MESSAGE (TEXT=’"proceed_text"’" /* mensaje en francés */"INTERACT" /* mostrar informe con mensaje */

Figura 8. Utilización de los mandatos MESSAGE e INTERACT para visualizar mensajes

Capítulo 7. Escritura de aplicaciones bilingües 43

|

Page 56: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Creación de aplicaciones traduciblesPuede ahorrar tiempo al adaptar una aplicación a idiomas nuevos utilizandovariables para tantos objetos sensibles a idiomas como pueda. Utilice variablespara ejecutar el mismo programa en distintas NLF.

Estas variables pueden incluir:v Los verbos, nombres de objeto y opciones de un mandato QMFv Nombres de paneles definidos por el usuario

Si crea sus propios paneles ISPF para la aplicación, necesitará un conjunto depaneles traducidos para cada idioma en el que se ejecute la aplicación. Dé aestos paneles nombres exclusivos y póngalos a disposición de los usuarios de laaplicación. A continuación, la aplicación podrá utilizar variables para losnombres de panel.

v Identificadores de mensajes definidos por el usuarioSi crea sus propios paneles ISPF, deberá crear también mensajes para que ISPFlos emita. Estos paneles de mensajes tienen identificadores exclusivos y puedeutilizar variables para hacer referencia a los mismos. Traduzca el texto delmensaje en los idiomas NLF apropiados. La aplicación puede utilizar variablespara los nombres de mensajes.

44 Developing DB2 QMF applications

Page 57: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 8. Mandatos de QMF en aplicaciones

Algunos mandatos determinados están diseñados para utilizarlos en aplicaciones ypuede crear sus propios sinónimos de mandatos.Información relacionada:

Consulta de DB2 QMFBúsqueda de información adicional sobre mandatos de QMF.

Mandatos diseñados para aplicacionesCualquier mandato que sea válido en la línea de mandatos de QMF en un entornoparticular también es válido en una aplicación. No obstante, algunos mandatosdeterminados se han diseñado de forma específica para ser utilizados enaplicaciones.

Los mandatos que se diseñan para aplicaciones pueden utilizarse tanto enaplicaciones de interfaz invocable como de mandatos, con dos excepciones. Sólodebe utilizar los mandatos START y TRACE con la interfaz invocable.

CONNECTUtilice el mandato CONNECT de QMF para acceder a datos y objetos de unservidor remoto. Cuando se conecte con el sistema remoto, este programa pasará aser la ubicación actual.

Cuando escriba aplicaciones, podrá emitir el mandato CONNECT desde:v la interfaz invocablev la interfaz de mandatosv Dentro de un procedimiento (lineal o con lógica)

Sin embargo, no puede emitir el mandato CONNECT si el procedimiento es unparámetro en la sentencia CALL que inicia QMF para TSO como unprocedimiento almacenado de DB2 para z/OS. La conectividad con servidoresremotos no se soporta cuando QMF se inicia como un procedimientoalmacenado.

Algunos aspectos determinados de las aplicaciones pueden verse afectados alutilizar el mandato CONNECT de QMF para acceder a un servidor remoto. Tengaen cuenta las siguientes consideraciones:v Cuando la aplicación se conecta con una ubicación nueva, el perfil, los

sinónimos de mandatos y las teclas de función de QMF se reinicializan con losvalores de la nueva ubicación (actual).

v Cuando se inicia QMF, el programa puede emitir un mandato CONNECT deQMF para establecer la conexión con un servidor remoto. Todos los mandatos osentencias SQL de QMF subsiguientes que afecten a objetos de la base de datosse ejecutarán en el servidor remoto.

v Los distintos tipos de mandatos se comportan de forma diferente con unaunidad de trabajo remota. Cuando las aplicaciones utilizan una unidad detrabajo remota, la mayoría de mandatos y los específicos del sistema QMF seejecutan en el sistema en el que se está ejecutando QMF (el sistema local). Noobstante, cuando un mandato de QMF realiza una de las siguientes acciones, losmandatos afectan a la base de datos del servidor remoto:

© Copyright IBM Corp. 1982, 2013 45

|||

Page 58: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

– Envía mandatos SQL a la base de datos– Utiliza o modifica objetos y datos almacenados en la base de datos de QMF

v Si el sitio utiliza TSO y aprovecha el soporte de RACF para contraseñas enmayúsculas y minúsculas, asegúrese de que la opción CASE de su perfil deQMF esté establecida en MIXED. De lo contrario, QMF cambia todas lasentradas por mayúsculas, haciendo que el mandato CONNECT falle debido aque entonces el caso de la contraseña es incorrecto. Cuando sea CASE=MIXED,asegúrese de indicar a los usuarios de la aplicación de QMF que introduzcantodas las entradas en mayúsculas, puesto que QMF sólo reconoce mandatos enmayúsculas.

Las siguientes sentencias de ejemplo muestran cómo un programa de interfazinvocable de REXX puede utilizar el mandato CONNECT de QMF. El programa seconecta con un servidor remoto, realiza una tarea predefinida y sale QMF:1. La siguiente sentencia empieza una sesión de QMF:

CALL DSQCIX "START"

2. La siguiente sentencia se conecta con la base de datos DB2 remota (DALLAS):CALL DSQCIX "CONNECT TO DALLAS"

3. Esta sentencia ejecuta un procedimiento con lógica (EARNINGS) que consultael servidor remoto para obtener datos, formatos de datos e imprime el informe:CALL DSQCIX "RUN PROC EARNINGS"

El procedimiento EARNINGS contiene la siguiente lógica:..."RUN QUERY EARNQ (FORM=EARNF""IMPRIMIR INFORME"...

4. Esta sentencia finaliza la sesión de QMF:CALL DSQCIX "EXIT"

Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBúsqueda de información acerca del inicio de QMF en modalidad de proceso porlotes o como un procedimiento almacenado z/OS y sobre tipos de servidorremotos válidos.

Consulta de DB2 QMFBúsqueda de información sobre la utilización del mandato CONNECT de QMF ysobre el soporte de la unidad de trabajo remota.

FINPuede utilizar el mandato END para establecer el panel de inicio de QMF comopanel actual.

Por ejemplo, un informe de QMF es el panel de QMF actual. La emisión delmandato END desde un programa de interfaz invocable o de interfaz de mandatosestablece el panel de inicio de QMF como pantalla actual. Cuando el panel deinicio de QMF es la pantalla actual, la emisión del mandato END no influye en lasesión de QMF.

SALIREl mandato EXIT funciona igual independientemente de cómo se ha haya iniciadola sesión de QMF: marca todas las sesiones de usuario para su terminación.

46 Developing DB2 QMF applications

Page 59: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Cuando se introduce el mandato EXIT en la línea de mandatos, la sesión en la quese introduce termina de forma inmediata. Cada sesión iniciada por el mandatoINTERACT termina tal pronto como se completa la aplicación que la ha iniciado.Cuando se emite el mandato EXIT en una aplicación, la sesión finaliza cuandofinaliza la sesión original de QMF. Todas las sesiones interactivas iniciadas por elmandato INTERACT deben finalizar antes de que termine QMF.

En un programa de interfaz invocable, es importante incluir el mandato EXIT deQMF cuando la aplicación ya no necesita QMF. Si olvida incluir este mandato, lasesión de QMF permanece activa hasta que finaliza la sesión o hasta que termina eltrabajo por lotes.

Cuando el usuario o una aplicación emite el mandato EXIT, QMF estableceDSQAO_TERMINATE en 1 (marcado para su terminación). Sólo una aplicaciónque se ejecute dentro de QMF puede probar y utilizar esta variable global. SiDSQAO_TERMINATE está establecido en 1 cuando QMF vuelve a la sesión deQMF principal, QMF termina inmediatamente y libera recursos.Referencia relacionada:“Variables globales para información de estado no relacionada con el perfil” en lapágina 215Las variables globales DSQAO contienen información de estado o valores deparámetros o distintivos. Ninguna de estas variables globales se puede modificarmediante el mandato FIJAR GLOBAL.

GET GLOBAL (sintaxis ampliada)Puede utilizar el mandato GET GLOBAL para acceder a variables globales de QMFde la aplicación. Para los lenguajes que no sean REXX, QMF proporciona unasintaxis ampliada del mandato GET GLOBAL.

�� GET Global ( Definiciones de variables ��

Definiciones de variable:

número de nombres de variable , longitudes de nombre de variable , nombres de variable , �

� longitudes de valor , valores , tipo de valor

Puede utilizar el mandato GET GLOBAL para copiar el valor de una variableglobal de QMFen una variable definida por la aplicación para que la utiliza laaplicación en cuestión. Los parámetros que especifique en el mandato GETGLOBAL definirán la variable de aplicación.

número de nombres de variableEl número de variables solicitadas.

longitudes de nombre de variableUna lista de longitudes para cada nombre de variable especificado.

La longitud del nombre de la variable. Se permite que una área de 18caracteres se rellene con espacios en blanco.

nombres de variableUna lista de nombres de variables de QMF.

No especifique espacios en blanco finales en nombres de variable global; QMFlos suprime.

Capítulo 8. Mandatos de QMF en aplicaciones 47

Page 60: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

longitudes de valorUna lista de longitudes de los valores de las variables.

Se aplican las siguientes reglas al valor de la variable:v Si el valor de longitud que indique es menor al valor almacenado en QMF,

QMF se trunca a la derecha y devuelve un valor truncado.v Si la longitud del valor que indique es mayor que el valor almacenado en

QMF, QMF devuelve un valor rellenado con espacios en blanco al final.

valoresUna lista de valores de variable.

tipo de valorUn tipo de datos del área de almacenamiento que contiene los valores; debeser un carácter o un entero.

INTERACTPuede utilizar el mandato INTERACT para visualizar el panel de QMF actual ypermitir que los usuarios interactúen con QMF en distintos puntos de la aplicación.El mandato INTERACT tiene dos formatos: sesión y mandato.

Cuando el usuario emite el mandato END desde un panel de QMF, QMF devuelveel control sobre la aplicación. Cuando el usuario emite el mandato EXIT desde unpanel de QMF, la sesión de QMF se marca para su terminación y QMF devuelve elcontrol sobre la aplicación.

El formulario de la sesión de INTERACTCuando se emite el mandato INTERACT, QMF coloca el usuario en el panel actualy permite que el usuario emita mandatos de QMF interactivamente. El mandatoINTERACT proporciona otra sesión de QMF dentro de la sesión actual.

El mandato INTERACT puede colocar al usuario en una sesión de QMF interactivao en una sesión ICU de GDDM interactiva.v Para una sesión de QMF interactiva:

Emita el mandato INTERACT después de un mandato de QMF quenormalmente mostraría un panel de QMF. En esta sesión, el usuario puedeintroducir todos los mandatos que resulten válidos para QMF interactivo.

v Para una sesión ICU de GDDM interactiva:Emita el mandato INTERACT después de un mandato que normalmente haceque QMF inicie el ICU de GDDM y visualice el panel ICU. En esta sesión, elusuario puede introducir cualquier mandato que sea válido para el ICU.

Un escenario

Este ejemplo muestra un procedimiento que sólo requiere un paso para generar uninforme.

QMF muestra el panel REPORT que contiene los datos formateados con unmensaje que dice "OK, el procedimiento se ha ejecutado."

/* Este procedimiento imprime el informe de ventas semanal. */"RUN QUERY WEEKLY_SALES_Q (FORM=WEEKLY_SALES_F""PRINT REPORT"

Figura 9. Un procedimiento simple sin el mandato INTERACT

48 Developing DB2 QMF applications

Page 61: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Puede escribir un procedimiento que implique distintos pasos y de los que deseever los resultados intermedios del procedimiento. Por ejemplo, desea ver losresultados intermedios de un procedimiento que ejecuta más de una consulta.Utilice el mandato INTERACT en los puntos del procedimiento en los que deseaver los resultados de un mandato. En este caso, inserte un mandato INTERACTinmediatamente después del primer mandato RUN QUERY en el siguienteprocedimiento:

Cuando ejecute este procedimiento desde el panel de inicio, QMF mostrará elpanel REPORT que contiene los datos formateados. A continuación, introduzca elmandato END desde el panel REPORT. Este procedimiento ejecuta la segundaconsulta y muestra el informe final. Si omite el mandato INTERACT,QMF sólomuestra el informe final sin mostrar el resultado de la primera consulta.

Supresión de la visualización de informes

Si ejecuta una consulta en una aplicación de interfaz invocable de QMF, QMFmostrará el informe resultante. No obstante, puede indicar a QMF que no muestreautomáticamente el informe estableciendo la variable globalDSQDC_DISPLAY_RPT en cero (0). También puede establecer esta variable globalen el mandato START especificando DSQADPAN=0.

Esta variable global sólo es válida cuando el mandato RUN QUERY se emite desdeuna aplicación. No afecta a la visualización de informes cuando se emite elmandato RUN QUERY desde la línea de mandatos QMF.

Finalización de una sesión iniciada por el mandato INTERACT

Cuando el usuario emite el mandato END, el control vuelve al proceso que haemitido el mandato INTERACT; no obstante, las dos sesiones no sonindependientes. Todo aquello realizado durante la sesión INTERACT sigue envigor cuando se reanuda la sesión anterior. Por ejemplo, el usuario modifica elobjeto de formulario actual en la nueva sesión interactiva. En este caso, el objeto deformulario actual de la sesión anterior contiene estas modificaciones cuandofinaliza la sesión nueva.

Puede hacer que la aplicación muestre el panel de inicio de QMF después de queel usuario emita un mandato END desde un panel de objeto de QMF. Añada lalógica de un bucle INTERACT.Referencia relacionada:“Ejemplo de REXX de utilización de un bucle INTERACT” en la página 208Puede hacer que el mandato END en una sesión interactiva se comporte de formaparecida a como se comporta END en QMF interactivo.

El formulario de comando de INTERACTLa interfaz de mandatos (DSQCCI) sólo ejecuta mandatos de QMFinteractivamente cuando la aplicación de la interfaz de mandatos utiliza elformulario del mandato INTERACT y QMF está ejecutando una sesión interactiva(DSQSMODE=I).

/* Este procedimiento genera un informe que muestra las ventas anuales. */"RUN QUERY WEEKLY_SALES_Q (FORM=WEEKLY_SALES_F""INTERACT""RUN QUERY YEAR_TOTAL_Q (FORM=YEAR_TOTAL_F"

Figura 10. Utilización de INTERACT en un procedimiento

Capítulo 8. Mandatos de QMF en aplicaciones 49

Page 62: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

El formulario del mandato INTERACT no influye en un mandato emitidomediante la interfaz invocable. En la interfaz invocable, la única forma de controlarsi los mandatos se ejecutan de forma interactiva es establecer DSQSMODE=I en elmandato START.

Utilice la siguiente sintaxis del mandato para solicitar la ejecución interactiva de unmandato designado:INTERACT mandato

En esta sentencia, mandato es el mandato que se desea ejecutar de formainteractiva. En este diálogo pueden aparecer varios paneles de estado y desolicitud de QMF.

Por ejemplo, el siguiente mandato muestra el panel del indicador de mandatospara opciones del mandato RUN QUERY:INTERACT RUN QUERY ABC ?

Si no se permite la ejecución interactiva, el formulario del mandato INTERACT noinfluye sobre el mandato que precede. No se permite una sesión interactiva en unasesión por lotes de QMF ni cuando QMF para TSO se inicia como unprocedimiento almacenado de DB2 para z/OS.

Puede comprobar si la ejecución interactiva se permite en la sesión actualexaminando una variable global denominada DSQAO_INTERACT. Un valor de 1para la variable global DSQAO_INTERACT indica que se permite INTERACT.Referencia relacionada:“Palabras claves del mandato START” en la página 56Puede especificar palabras clave en el mandato START.“Variables globales para información de estado no relacionada con el perfil” en lapágina 215Las variables globales DSQAO contienen información de estado o valores deparámetros o distintivos. Ninguna de estas variables globales se puede modificarmediante el mandato FIJAR GLOBAL.

MESSAGECuando cree aplicaciones, a menudo querrá enviar mensajes específicos a sususuarios acerca de la información visualizada para ellos o su siguiente acción.Puede escribir sus propios mensajes y visualizarlos en paneles de QMF mediante elmandato MESSAGE. En ISPF, también puede decidir que QMF muestre la ayudapara mensajes para un mensaje de error ISPF.

Sintaxis

La sintaxis del mandato MESSAGE es la siguiente:

�� Mensajenúmero (

Ayuda=panelAyudaDetenerProceso=Sí|NOTexto=valor

��

número (sólo con ISPF)número sólo es válido en ISPF. Este parámetro es el número de identificación deuna definición de mensaje en una biblioteca de mensajes ISPF.

50 Developing DB2 QMF applications

Page 63: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

HELPUtilice estos parámetros para especificar un panel de ayuda que no sea eldefinido con el mensaje que normalmente se visualiza en esta situación.Sustituya panelAyuda por el ID de panel apropiado.

No puede modificar un panel de QMF para que se visualice si su definición enDSQPNLE.

En ISPF, si desea crear y visualizar su propio panel, la definición del paneldebe ser una biblioteca de paneles ISPF. Esta biblioteca debe estar concatenadacon el conjunto de datos ISPPLIB. El panel debe ser un panel de ayuda, no unmenú no un panel de entrada de datos.

En ISPF, si ha especificado número, panel de ayuda adoptará el valorpredeterminado del indicador del panel de ayuda para la definición demensaje especificada por número.

En ISPF, si la definición de mensaje especificada por número no hace referenciaa un indicador del panel de ayuda, el mandato MESSAGE no proporcionaráuna ayuda para mensajes. En su lugar, la ayuda de QMF para el panel deobjeto se visualizará en la pantalla del usuario cuando dicho usuario soliciteayuda.

PARAPROCUtilice Stopproc para suprimir la ejecución de procedimientos linealesestableciendo el conmutador de terminación de procedimiento. El siguientemandato establece el conmutador de terminación de procedimiento:Mensaje (Stopproc=Yes

Si Stopproc=Yes, el conmutador de terminación de procedimiento estáactivado. El valor predeterminado es No (desactivado). Este conmutador sóloafecta a procedimientos lineales.

Mientras este conmutador está activo, cualquier procedimiento de QMF quereciba el control finalizará la sesión inmediatamente. Mientras que elconmutador está desactivado, los procedimientos se ejecutan de forma normal.

Cuando el conmutador está desactivado, sólo puede volver a activarlo unmandato MESSAGE. Cuando el conmutador está activo, permanece en esteestado hasta que ocurre uno de los siguientes casos:v Se emite otro mandato de QMF. Este mandato puede ser cualquier mandato

de QMF excepto un mandato MESSAGE con la opción para activar elconmutador.

v El control vuelve al usuario cuando finaliza la aplicación. Un usuariosiempre puede emitir mandatos en línea que ejecutan procedimientos deQMF.

Puede verificar si el conmutador de terminación del procedimiento está activoexaminando la variable DSQCM_MESSAGE. Si la opción de terminación estáen vigor, esta variable contiene el mensaje para el mandato MESSAGE que hadevuelto en el conmutador de terminación.

TEXTUtilice la opción TEXT para definir un mensaje o sustituir el texto en unadefinición de mensaje ISPF. Sustituya valor por la serie de caracteres que debeutilizarse para el mensaje. Un valor que contenga caracteres en blanco deberáestar rodeado por delimitadores. Los delimitadores válidos para un valor demensaje son comillas simples, paréntesis y comillas dobles. Cuando losdelimitadores son comillas dobles, dichas comillas dobles se visualizan comoparte del mensaje. La longitud máxima de un valor de mensaje es de 360

Capítulo 8. Mandatos de QMF en aplicaciones 51

Page 64: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

caracteres de un sólo byte. La proporción del mensaje que se pueda visualizarvendrá determinada por el ancho del dispositivo de visualización que estéutilizando. Se trunca un valor superior a los 78 caracteres para que sólocontenga los primeros 78 caracteres. QMF no convierte el texto en mayúsculas;no obstante, es posible que ISPF convierte el texto en mayúsculas si MESSAGEse emite mediante la interfaz de mandatos.

Si el mensaje contiene comillas, deberá doblar las comillas en la especificaciónde TEXT=.

En ISPF, el valor predeterminado es el texto de mensaje largo del mensaje ISPFespecificado por el número, que se convierte en el mensaje generado. El textode deja tal cual; no se realiza ningún doblado, independientemente del valordel valor CASE en el perfil de QMF del usuario.

Supongamos que desea escribir una aplicación utilizando un procedimiento queejecuta dos consultas y muestra dos registros. Cuando QMF muestra el primerinforme, quizás quiera indicar a los usuarios cómo visualizar el segundo informe.Puede escribir un procedimiento lineal como el que se muestra aquí, que en elpanel REPORT incluye un mensaje definido por el mandato MESSAGE. Para quese visualice el mensaje en el panel REPORT, coloque el mandato MESSAGEinmediatamente antes del mandato INTERACT, tal como mostramos aquí:

Si utiliza un procedimiento con lógica, puede utilizar una variable de REXX enlugar de la serie de texto que especifique para el mandato MESSAGE, tal comomostramos aquí. Cuando utilice variables de REXX, debe utilizar comillas doblesalrededor del nombre de la variable en la serie de texto del mensaje.

Este mensaje abarca múltiples líneas con caracteres de continuación deREXX./* QMF REXX PROCEDURE */MSGTEXT="Ha introducido un valor de datos incompatible con "||,"el tipo de datos de columna; compruebe el tipo de datos de la "||,"columna y vuelva a intentarlo.""MESSAGE(TEXT=("MSGTEXT"))"EXIT

Ejemplos

Aquí encontrará algunos ejemplos sobre cómo emitir el mandato MESSAGE bajovarias condiciones.

...RUN QUERY WEEKLY_SALES_Q (FORM=WEEKLY_SALES_FMESSAGE (TEXT=’Aceptar, pulse END cuando termine de visualizar este informe.’INTERACTRUN QUERY YEAR_TOTAL_Q (FORM=YEAR_TOTAL_F

...

Figura 11. Ejemplo de utilización del mandato MESSAGE

oktext = ’Aceptar, pulse END cuando termine de visualizar el informe.’"RUN QUERY WEEKLY_SALES_Q (FORM=WEEKLY_SALES_F""MESSAGE (TEXT=’"oktext"’""INTERACT""RUN QUERY YEAR_TOTAL_Q (FORM=YEAR_TOTAL_F"

Figura 12. Utilización de variables de REXX con el mandato MESSAGE en un procedimiento

52 Developing DB2 QMF applications

Page 65: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Ejemplo de emisión del mandato MESSAGE desde un procedimiento lineal deQMF:Este ejemplo abarca varias líneas utilizando caracteres de continuación paraprocedimientos lineales:MESSAGE(TEXT='Ha introducido un valor de datos incompatible con+el tipo de datos de columna; compruebe el tipo de datos de la+columna e inténtelo de nuevo.’)

v Ejemplos de utilización de mandatos MESSAGE con ISPF:A continuación encontrará ejemplos sobre cómo utilizar el mandato MESSAGE siestá compilando una aplicación que utiliza ISPF:– MESSAGE MSG011X

- El texto del mensaje es el mensaje largo en MSG011X.- El panel de ayuda para mensajes es el panel identificado (si lo hay) en

MSG011X.- Si el conmutador de terminación del procedimiento debe establecerse

después de que QMF procese el mandato, vendrá determinado por elconmutador de terminación del procedimiento en MSG011X.

– MESSAGE MSG011X (HELP=PANELX STOPPROC=YES

- El texto del mensaje es el mensaje largo en MSG011X.- El panel de ayuda para mensajes es un panel denominado PANELX.- El conmutador de terminación de procedimiento está activo, lo que

suprime la ejecución de procedimientos lineales de QMF en la aplicación.Información relacionada:

El Centro de publicaciones de IBMBúsqueda de información de referencia de REXX para el sistema.

SET GLOBAL (sintaxis ampliada)Para crear sus propias variables globales y utilizarlas en mandatos de QMF comovariables de sustitución, emita el mandato SET GLOBAL. También puede utilizar elmandato SET GLOBAL para establecer valores para variables globales de QMFpredefinidas, que empiezan por "DSQ."

Restricción: No puede utilizar el mandato SET GLOBAL para establecer variablesglobales definidas como de sólo lectura.

Sintaxis de SET GLOBAL (sintaxis ampliada)Puede utilizar la sintaxis ampliada del mandato SET GLOBAL para cambiar losvalores de variables en lenguajes de interfaz invocable que no sean el de REXX.Algunos ejemplos de otros lenguajes incluyen Assembler, C, COBOL, Fortran yPL/I.

El nombre de variable puede tener hasta 18 caracteres de longitud para lasvariables utilizadas con aplicaciones de interfaz invocable. El nombre de variablepuede tener hasta ocho caracteres de longitud cuando se trata de las variablesutilizadas con la interfaz de mandatos. La longitud máxima del mandato,incluyendo la sintaxis del mandato, es de 2000 bytes

La sintaxis del mandato es la siguiente:

�� SET GLOBAL ( Definiciones de variables ��

Capítulo 8. Mandatos de QMF en aplicaciones 53

||

|||||

Page 66: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Definiciones de variable:

número de nombres de variable , longitudes de nombre de variable , nombres de variable , �

� longitudes de valor , valores , tipo de valor

número de nombres de variableEl número de variables solicitadas.

longitudes de nombre de variableUna lista de longitudes para cada nombre de variable especificado.

Asegúrese de que la longitud del nombre de la variable global sea igual a lalongitud real del nombre global en el programa. Se permite que una área de 18caracteres se rellene con espacios en blanco.

nombres de variableUna lista de nombres de variables de QMF.

longitudes de valorUna lista de longitudes de los valores de las variables. Si la longitud del valorque indique es menor al valor almacenado en el área de almacenamiento, elvalor se truncará a la derecha cuando se almacene en QMF.

QMF utiliza el valor para el programa, empezando por la dirección que seasigna para la longitud asignada. Si la longitud es demasiado larga, es posibleque QMF termine de forma anómala.

valoresUna lista de valores de variable.

tipo de valorEl tipo de datos del área de almacenamiento que contiene los valores. Puedenser caracteres o enteros.

En las especificaciones del lenguaje de programación se documentan ejemplossobre cómo utilizar la sintaxis ampliada del mandato SET GLOBAL.Referencia relacionada:Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca de la sintaxis lineal del mandato SET GLOBALcon aplicaciones REXX.

Directrices para definir y utilizar variables globalesLos nombres de las variables globales están sujetos a determinadas reglas.

Cuando defina y utilice nombres de variables globales, tenga en cuenta lassiguientes reglas:v En el mandato SET GLOBAL, los nombres de variable no van precedidos de un

ampersand puesto que se encuentran en los mandatos RUN y CONVERT.v Si crea una variable global con el mismo nombre del de una variable de formato

o variable de agregación, QMF no utilice la variable global en el formato. QMFutiliza el valor de la variable de formato (o variable de agregación) en el formatoen lugar del valor de la variable global.

54 Developing DB2 QMF applications

Page 67: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v El formato de QMF no reconoce variables globales con signos de interrogaciónen los nombres.

v Los nombres de las variables globales están limitados a 17 caracteres cuando seintroducen en la línea de mandatos y a 18 caracteres cuando se introducenmediante la interfaz invocable. Sin embargo, debido a las limitaciones delmandato SET GLOBAL, utilice nombres de 17 caracteres.

v Un nombre de variable global puede contener caracteres numéricos, pero elprimer carácter de un nombre de variable global no puede ser numérico.

v Los nombres de variable global no pueden empezar por DSQ puesto queQMFreserva estas letras a las variables globales predefinidas de QMF.

v El primer carácter de un nombre de variable global debe ser un carácteralfabético (de la A a la Z) o uno de estos caracteres especiales:

¢ ! $ ~ { } ? @ # % \v Un nombre de variable global no puede contener espacios en blanco ni ninguno

de los caracteres siguientes:

* ( ) - + ¬ | : ; " ' < > / . , = &v QMF elimina los espacios en blanco de los nombres de variable global.v De forma predeterminada, se conserva un valor de variable global hasta que éste

se restablece o finaliza la sesión de QMF. Sin embargo, puede establecer lavariable global DSQEC_USERGLV_SAV para guardar valores de variable globalde una sesión a otra.

Referencia relacionada:“Variables globales que controlan cómo se ejecutan los mandatos y losprocedimientos” en la página 230Las variables globales DSQEC controlan cómo se ejecutan los mandatos yprocedimientos. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.Apéndice B, “Variables globales de QMF”, en la página 213QMF proporciona muchas variables globales que le ayudan a controlar aspectos dela sesión de QMF, los mandatos de QMF y la pantalla del panel. Las variablesglobales también le ayudan a controlar el comportamiento de las funciones deQMF en procedimientos y aplicaciones.

STARTCuando se inicia QMF mediante la interfaz invocable, debe utilizarse el mandatoSTART.

Sintaxis generalLa sintaxis del mandato START depende del lenguaje de programación que seutiliza para la aplicación de la interfaz invocable

Sólo puede haber una sesión de QMF activa a la vez. Cuando inicieQMF desdeuna aplicación, emita un mandato START para probar si se ha iniciadoQMF.

En las especificaciones del lenguaje de programación encontrará documentadosalgunos ejemplos de la sintaxis para cada lenguaje de programación.

A continuación encontrará la sintaxis general del mandato START:

�� START ( definiciones de palabra clave ��

Capítulo 8. Mandatos de QMF en aplicaciones 55

||||

Page 68: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Definiciones de palabras clave:

número de palabras clave , longitudes de palabra clave , palabras clave , �

� longitudes de valor , valores , tipos de valor

Assembler, C, COBOL, Fortran y PL/I utilizan las siguientes especificaciones parael mandato START:

número de palabras claveEl número de palabras clave del mandato START que se está utilizando en elmandato START.

longitudes de palabra claveLa longitud de cada palabra clave del mandato START especificado.

palabras claveNombres de las palabras clave del mandato START.

longitudes de valorUna lista que contiene las longitudes de los valores de cada palabra clave delmandato START.

valoresUna lista de los valores de las palabras clave del mandato START especificadosen este mandato.

tipo de valorEl tipo de datos del valor. El tipo de datos debe ser del tipo carácter para elmandato START.

Conceptos relacionados:“Inicio de QMF desde una aplicación” en la página 21Antes de ejecutar cualquier otro mandato desde una aplicación, debe iniciar QMF.Al utilizar la interfaz invocable, inicie QMF emitiendo el mandato START en laaplicación. Sólo puede tener una sesión de QMF a la vez.Referencia relacionada:Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.“Palabras claves del mandato START”Puede especificar palabras clave en el mandato START.

Palabras claves del mandato STARTPuede especificar palabras clave en el mandato START.

Estas palabras clave están disponibles en el mandato START:v DSQADPANv DSQALANGv DSQSBSTGv DSQSCMD (TSO only)v DSQSDBCSv DSQSDBNMv DSQSDBQN (sólo CICS)v DSQSDBQT (sólo CICS)

56 Developing DB2 QMF applications

Page 69: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v DSQSDBUGv DSQSIROWv DSQSMODEv DSQSMRFIv DSQSPILLv DSQSPLAN (sólo TSO)v DSQSPRID (sólo TSO)v DSQSPTYP (sólo TSO)v DSQSRSTG (sólo TSO)v DSQSRUNv DSQSSPQN (sólo CICS)v DSQSSUBS (sólo TSO)

Estas palabras clave se describen en la siguiente tabla.

Puede especificar palabras clave del mandato START con los convenios siguientes:v Puede especificar cualquier palabra clave en el mandato START. En TSO,

también puede especificar cualquier palabra clave en el programa de REXXnombrado por la palabra clave DSQSCMD. Puesto que QMF para CICS noadmite REXX, debe especificar todas las palabras clave en el mandato START.

v Si la aplicación o el procedimiento inicial (especificado por la palabra claveDSQSRUN) especifica palabras clave no admitidas en un entorno en concreto,dichas palabras clave se ignoran. Con este convenio, puede compilar un únicoprograma para que se ejecute en varios entornos de QMF sin cambiar laspalabras clave específicas de entorno.

v Si no especifica ninguna palabra clave, QMF utiliza los valores de las palabrasclave del mandato START tal como aparecen en el programa especificado por lapalabra clave DSQSCMD. Si no utiliza este programa, QMF utiliza los valorespredeterminados de cada palabra clave mostrada en esta tabla.

Tabla 8. Palabras clave, descripciones y valores predeterminados del mandato START

Palabras clavesdel mandatoSTART Descripción Valor predeterminado

DSQADPAN Está previsto para que sólo se utilice con la interfaz invocable; esteparámetro del mandato START establece la variable global STARTDSQDC_DISPLAY_RPT. Esta variable controla si QMF debe mostrarel informe cuando se ejecuta una consulta desde dentro de unprograma de aplicación. El valor 1 muestra el informe cuando seejecuta una consulta. Establezca el valor en 0 para no visualizar elinforme.

1 (visualizar informe)

Capítulo 8. Mandatos de QMF en aplicaciones 57

Page 70: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 8. Palabras clave, descripciones y valores predeterminados del mandato START (continuación)

Palabras clavesdel mandatoSTART Descripción Valor predeterminado

DSQALANG Determina el idioma nacional preferente de la sesión que estáiniciando. Puede especificar este parámetro en sus aplicaciones deforma que los usuarios puedan introducir o especificar mandatos deQMF en un idioma nacional. El valor de este parámetro es unidentificador de idioma nacional de un carácter y se muestra acontinuación. Si desea introducir mandatos en inglés cuando elidioma preferente sea un idioma que no sea el inglés, puede utilizarel soporte bilingüe de QMF. Debe haber instalado la característicade idioma nacional del idioma que especifique.

C - Francés canadiense

D - Alemán

E - Inglés

F - Francés

H - Coreano (Hangeul)

I - Italiano

K - Japonés (Kanji)

P - Portugés de Brasil

Q - Danés

S - Español

U - Inglés en mayúsculas

V - Sueco

Y - Francés suizo

Z - Alemán suizo

E (Inglés)

58 Developing DB2 QMF applications

Page 71: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 8. Palabras clave, descripciones y valores predeterminados del mandato START (continuación)

Palabras clavesdel mandatoSTART Descripción Valor predeterminado

DSQSBSTG Especifica la cantidad máxima de almacenamiento virtual porusuario que debe utilizarse para generar informes de QMF. Losvalores posibles son:

0 - 2147483647Especifica el almacenamiento en bytes.

0KB - 2097152KBEspecifica el almacenamiento en KB.

0MB - 2048MBEspecifica el almacenamiento en MB.

0GB - 2GBEspecifica el almacenamiento en GB.

1% - 100%Especifica el porcentaje de almacenamiento disponible. Losporcentajes sólo son válidos en TSO.

Si está utilizando CICS, puede especificar una cantidad fija dealmacenamiento en bytes, KB, MB o GB.

Si utiliza TSO, QMF determina de forma predeterminada lacantidad máxima de almacenamiento que debe utilizarse paragenerar informes de QMF. Si establece el parámetro DSQSBSTG enun valor no cero válido, se utilizará en su lugar la cantidad dealmacenamiento que especifique para el parámetro. Si utiliza TSO,puede especificar el valor para DSQSBSTG como una cantidad fijade almacenamiento o como un porcentaje del almacenamientovirtual disponible. Si establece el parámetro DSQSBSTG en 0 yestablece el parámetro DSQSRSTG en un valor no cero, elparámetro DSQSRSTG se utiliza para determinar la cantidadmáxima de almacenamiento de informes. Si especifica valores nocero válidos para DSQSBSTG y DSQSRSTG, se utilizará el valorDSQSBSTG.

Si establece el valor DSQSBSTG en un valor inferior a la cantidadmínima de almacenamiento que se necesita para generar uninforme, QMF asigna automáticamente la cantidad mínima dealmacenamiento necesaria. En TSO, la cantidad mínima dealmacenamiento es de 15000 bytes.

La disponibilidad de almacenamiento se vuelve a evaluar durantetoda la sesión de QMF.Restricciones:

v Los valores de porcentaje deben incluir el signo de porcentaje (%)y no deben contener espacios.

v Los valores en formato GB, MB o KB no pueden contenerespacios (por ejemplo, no puede introducir 2 GB).

v Los valores en formato GB, MB o KB no pueden contenercaracteres después de las unidades (por ejemplo, no puedeintroducir 2GBxyz).

v GB, MB o KB introducidos sin ningún número precedente semanejan como un valor de 0.

En CICS: 500000

En TSO: 0

Capítulo 8. Mandatos de QMF en aplicaciones 59

|||

||

||

||

||

|||

||

|||||||||||||

|||||

||

||

||

|||

||

Page 72: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 8. Palabras clave, descripciones y valores predeterminados del mandato START (continuación)

Palabras clavesdel mandatoSTART Descripción Valor predeterminado

DSQSCMD(TSO

sólo)

Esta palabra clave especifica el programa de REXX que establece losparámetros de programa de QMF en QMF para TSO.

Cuando QMF recibe el mandato START desde la aplicación de lainterfaz invocable, TSO llama al programa de REXX especificadopor esta palabra clave. Este programa de REXX proporciona valoresa los parámetros de programa de QMF a no ser que el usuario hayaespecificado sus valores directamente en el mandato START. Elprograma predeterminado proporcionado con TSO es DSQSCMDE,que proporciona valores de parámetro de programa en inglés paratodas las palabras clave mostradas en esta tabla. Un valor de NULLpara un parámetro en concreto indica que TSO utiliza el valorpredeterminado para dicho parámetro.

Si utiliza una característica de idioma nacional (NLF), puedecambiar el nombre del programa predeterminado por DSQSCMDn.La variable n es el identificador de idioma nacional (NLID) delidioma que se está utilizando.

Aunque no se puede percibir en esta tabla, el parámetroDSQSDBLG también se establece de forma predeterminada en elprograma DSQSCMDE proporcionado conTSO. Este parámetro seestablece cuando se inicia QMF para TSO como un procedimientoalmacenado de DB2 para z/OS. No se puede establecerexternamente fuera del contexto de la interfaz del procedimientoalmacenado.

DSQSCMDE

DSQSDBCS Determina si QMF permite caracteres de doble byte cuando eldispositivo de visualización no admite el juego de caracteres dedoble byte (DBCS). Los valores son YES o NO.

Establezca el valor en YES cuando quiera imprimir datos DBCSdesde un dispositivo de visualización no DBCS o ejecutar un trabajopor lotes de QMF que imprima datos DBCS. De lo contrario,establezca el valor en NO.

NO

DSQSDBNM Especifica el servidor remoto con el que debe establecerse laconexión al iniciar una sesión de QMF. Un valor nulo significa queQMF se conecta con la base de datos predeterminada (la base dedatos con la que normalmente se conecta sin una unidad de trabajoremota).

NULL

DSQSDBQN(sólo CICS)

Especifica el nombre de la cola de almacenamiento de CICS quedebe utilizarse para los datos de rastreo de QMF. El nombre debeajustarse a las especificaciones de nombre de CICS para el tipo decola de CICS especificado por DSQSDBQT.

DSQD

DSQSDBQT(sólo CICS)

Especifica el tipo de almacenamiento de CICS que debe utilizarsepara los datos de rastreo de QMF.

Los valores son:

TD Utiliza una cola de datos transitoria de CICS.

TS Utiliza una cola de almacenamiento temporal auxiliar de CICS.Proceda con cuidado cuando especifique el almacenamientotemporal, pues QMF puede generar una gran cantidad de datosde rastreo.

TD

60 Developing DB2 QMF applications

Page 73: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 8. Palabras clave, descripciones y valores predeterminados del mandato START (continuación)

Palabras clavesdel mandatoSTART Descripción Valor predeterminado

DSQSDBUG Especifica si la actividad del producto se rastrea durante lainicialización de QMF. Los valores son:

ALLEspecifica el rastreo de QMF más detallado.

NONENo especifica ningún rastreo de QMF.

Cuando inicie QMF en modalidad de proceso por lotes, serastrearán todos los mensajes y mandatos (equivalentes a un nivelL2 de rastreo) independientemente de cómo haya establecidoDSQSDBUG.

NONE

DSQSIROW Indica el número de filas que QMF capta antes de visualizar suprimera pantalla de datos para un mandato RUN QUERY, IMPORTDATA o DISPLAY.

100

DSQSMODE Especifica la modalidad en que se debe iniciarQMF.

I Especifica la modalidad interactiva.

B Especifica la modalidad de proceso por lotes.

Cuando el valor de DSQSMODE es B, se inhabilita el panel devisualización de forma que QMF pueda ejecutarse como un trabajoen segundo plano.

B (por lotes)

DSQSMRFI Especifica si la sesión de QMF que está iniciando utiliza lacaptación y la inserción de múltiples líneas de DB2. La captación yla inserción de múltiples filas de DB2 aumenta el rendimiento demuchos mandatos de QMF (como DISPLAY TABLE, EXPORT DATAo EXPORT TABLE, IMPORT TABLE, PRINT REPORT o PRINTTABLE, RUN QUERY o RUN PROC) cuando estos mandatosrecuperan datos. La captación e inserción de varias filas de DB2también aumenta el rendimiento de los mandatos como SAVEDATA, DPRE y BOTTOM o FORWARD durante la navegación delinforme.

Este parámetro establece la variable global DSQAO_DSQSMRFI.

SI Especifica que QMF utiliza la captación e inserción de múltiplesfilas de DB2.

Cuando MR está establecido en YES y se utiliza un mandato deQMF que incluye un nombre completo en tres partes, losservidores deben ejecutar DB2 para z/OS. Tanto el solicitantedesde donde inicia el mandato como el servidor al que sedirige el mandato deben ejecutarse en este nivel de versión. Losmandatos con nombres completos en tres partes no se puedendirigir a servidores de DB2 para VSE y VM.

NO Especifica que QMF no utilizará la captación de múltiples filasde DB2 ni las prestaciones de inserción. Este parámetro debeestar establecido en NO si desea que puedan elegirse lasconsultas de QMF para ejecutarse en un acelerador de consulta.

Al recuperar datos XML o LOB, QMF utiliza la captación de filaúnica, independientemente del valor del parámetro DSQSMRFI.

NO

Capítulo 8. Mandatos de QMF en aplicaciones 61

|||||||

||

Page 74: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 8. Palabras clave, descripciones y valores predeterminados del mandato START (continuación)

Palabras clavesdel mandatoSTART Descripción Valor predeterminado

DSQSPILL Especifica si QMF utiliza el almacenamiento de vertido cuando senecesita almacenamiento extra para informes. Los valores posiblesson YES o NO.

Si especifica un valor de YES para DSQSPILL y está utilizando QMFpara TSO, asegúrese de que el parámetro DSQSPTYP estéestablecido para acomodar el tipo de almacenamiento de vertidoque utiliza.

Si utiliza CICS, consulte la explicación de la palabra claveDSQSSPQN para obtener el nombre de la cola de almacenamientotemporal que retiene los datos de vertido.

Para CICS: NO

Para TSO: YES

DSQSPLAN(TSO

sólo)

Especifica el ID del plan de aplicación de DB2 asignado a QMF. QMF11

DSQSPRID(TSO

sólo)

Especifica si utilizar el ID de inicio de sesión de TSO o el ID deautorización de base de datos primaria para seleccionar la filaapropiada de Q.PROFILES y para calificar entradas Q.ERROR_LOG.Los valores permitidos son PRIMEID o TSOID.

PRIMEID

DSQSPTYP(TSO

sólo)

Cuando el parámetro DSQSPILL está establecido en YES, especificael tipo de almacenamiento que debe utilizarse para los datos devertido. Un valor de FILE especifica un archivo; un valor de 64BITespecifica un almacenamiento ampliado. Cuando se especifica elalmacenamiento ampliado, QMF adquiere un almacenamiento encada llamada al gestor de almacenamiento ampliado en la cuentaespecificada en la variable global DSQEC_EXTND_STG.

FILE

DSQSRSTG(TSO

sólo)

Asigna dinámicamente almacenamiento virtual disponible a losinformes.

De forma alternativa, puede utilizar la palabra clave DSQSBSTGpara establecer la cantidad máxima de almacenamiento como unacantidad fija o un porcentaje de almacenamiento disponible. SiDSQSBSTG se ha establecido con un valor distinto a cero, QMFignora el valor DSQSRSTG.

0

DSQSRUN Especifica el nombre del procedimiento inicial de QMF que debeejecutarse después de iniciar QMF. El procedimiento inicial sólo seejecuta una vez con la interfaz invocable.

En este procedimiento, puede incluir mandatos para establecervariables globales y valores de perfil para personalizar la sesión delusuario.

NULL

DSQSSPQN(CICS

sólo)

Especifica el nombre de la cola de almacenamiento temporaldeCICS que se utiliza para los datos de vertido de QMF. Cuando elparámetro de programa DSQSPILL tiene el valor YES, esta área devertido se utiliza para contener datos de informe.

DSQSvid, donde id es elID del terminal de CICS

DSQSSUBS(TSO

sólo)

Especifica el ID de la base de datos DB2 en la que se iniciaQMF. ElID de base de datos que especifique en esta palabra clave debeconfigurarse como un solicitante de aplicaciones.

DSN

62 Developing DB2 QMF applications

|||||

Page 75: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Conceptos relacionados:Capítulo 7, “Escritura de aplicaciones bilingües”, en la página 39Muchas aplicaciones empresariales necesitan ejecutarse en distintos idiomasnacionales. Puede escribir una aplicación en inglés y ejecutarla en cualquier idiomanacional que QMF soporte.Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).“Variables globales que controlan cómo se ejecutan los mandatos y losprocedimientos” en la página 230Las variables globales DSQEC controlan cómo se ejecutan los mandatos yprocedimientos. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca del rastreo a nivel de función y acerca dediagramas de sintaxis del mandato START.

Instalación y gestión de DB2 QMF para TSO y CICSBúsqueda de información sobre cómo se ven afectadas las palabras claves delmandato START por las dependencias del entorno, la instalación de unacaracterística de idioma nacional, el inicio de QMF para TSO como unprocedimiento almacenado, el rastreo de nivel de función y sobre cómo configurarel ID de la base de datos como un solicitante de aplicaciones.

El Information Center de CICSBúsqueda de información acerca de especificaciones de nombre.

TRACEPuede utilizar el mandato TRACE para añadir información de rastreo de lasaplicaciones de la interfaz invocable a la salida de datos de rastreo de QMF. Estemandato puede utilizarse en aplicaciones de Assembler, C, COBOL, Fortran yPL/I. No se puede emitir desde la línea de mandatos de QMF.

La sintaxis del mandato TRACE es la siguiente:

�� TRACE ( Definiciones del área de rastreo ��

Definiciones del área de rastreo:

número de áreas de rastreo , longitudes de título de rastreo , direcciones de título de rastreo , �

� longitudes de área de rastreo , direcciones de área de rastreo , tipo de valor

Número de áreas de rastreoEl número de definiciones de área de rastreo que se está utilizando en elmandato TRACE. Este número debe estar en el rango del 1 al 10.

Longitudes de título de rastreoUna lista de longitudes de cada título de rastreo que se especifica.

Direcciones de título de rastreoUna lista de direcciones que apuntan a los títulos de rastreo que deben

Capítulo 8. Mandatos de QMF en aplicaciones 63

|

||||

|

||||||||||||||||||||

|

||||||||||||||||||

|||||||||||||||||

|||

||

||

Page 76: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

utilizarse en cada área de rastreo. Un título de rastreo puede tener hasta 40caracteres de largo. Los espacios en blanco al final se eliminan. Cuando elprimer título de rastreo es SNAPREGS, todos los otros títulos de rastreo y lasdirecciones de área de rastreo se ignoran y los valores de registro de QMF seescriben en el rastreo de QMF.

Longitudes de área de rastreoUna lista que contiene el número de bytes del almacenamiento que debenvisualizarse empezando por la correspondiente dirección de área de rastreo.Las longitudes de área de rastreo deben incluirse en valores enteros FIXED(31).

Direcciones de área de rastreoUna lista de direcciones que deben visualizarse en la salida de rastreo. Elnúmero de bytes de almacenamiento que se visualizan en cada dirección deárea de rastreo viene determinado por la longitud del área de rastreo. Cuandoel primer título de rastreo es “SNAPREGS,” se ignoran todas las direcciones deárea de rastreo y las longitudes de área de rastreo. Cuando la dirección delárea de rastreo es 0, la longitud del área de rastreo se considera que es 0.

Tipo de valorDebe ser el valor “FINT.” “FINT” es un valor constante que se suministra en elárea de comunicaciones de la interfaz (DSQCOMM) de cada lenguaje deprogramación. La constante es un nombre parecido a DSQ_VARIABLE_FINT.Compruebe el área de comunicaciones de la interfaz de su lenguaje deprogramación para confirmar el valor de la variable.

El mandato TRACE escribe definiciones del área de rastreo en la salida de datos derastreo de QMF, independientemente de los valores de rastreo de QMF. Si sólodesea escribir la salida de rastreo si los valores de rastreo de QMF están activos,utilice las variables globales de QMF DSQAO_APPL_TRACE o DSQAP_TRACE .

Ejemplo de codificación PL/I para TRACEPuede utilizar el mandato TRACE en una aplicación PL/I para escribir informaciónde rastreo de la aplicación en la salida de rastreo de QMF.

El siguiente ejemplo de codificación primero verifica que el usuario esté rastreandola actividad de la aplicación de QMF comprobando que la variable globalDSQAO_APPL_TRACE no esté establecida en '0'. Si el rastreo de aplicaciones estáactivado, a continuación se emite el mandato TRACE. El mandato TRACEespecifica tres definiciones de área de rastreo que deben escribirse en la salida derastreo de QMF.

Este ejemplo no está incluido en el archivo DSQABFP que se distribuye con QMF.DSQABFP: PROCEDURE OPTIONS(MAIN REENTRANT) REORDER;/********************************************************************//* Programa de ejemplo: DSQABFP *//* Versión de PL/I de la interfaz invocable de QMF *//********************************************************************/

/********************************************************************//* Incluir y declarar área de comun. de interfaz de consulta *//********************************************************************/%INCLUDE SYSLIB(DSQCOMML);

/********************************************************************//* Función incorporada *//********************************************************************/DCL LENGTH BUILTIN;

/********************************************************************/

64 Developing DB2 QMF applications

|||||

||||

|||||||

||||||

||||

|||

||||||

|

|||||||||||||||||

Page 77: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/* Mandatos y longitud de mandato de interfaz de consulta *//********************************************************************/DCL COMMAND_LENGTH FIXED BIN(31);DCL START_QUERY_INTERFACE CHAR(5) INIT(’START’);DCL SET_GLOBAL_VARIABLES CHAR(10) INIT(’SET GLOBAL’);DCL GET_GLOBAL_VARIABLES CHAR(10) INIT(’GET GLOBAL’);DCL RUN_QUERY CHAR(12) INIT(’RUN QUERY Q1’);DCL PRINT_REPORT CHAR(22) INIT(’PRINT REPORT (FORM=F1)’);DCL TRACE_COMMAND CHAR(5) INIT(’TRACE’);DCL END_QUERY_INTERFACE CHAR(4) INIT(’EXIT’);

/********************************************************************//* Extensión de mandato de consulta, núm. de parámetros y longitudes*//********************************************************************/DCL NUMBER_OF_PARAMETERS FIXED BIN(31);/* número de variables */DCL KEYWORD_LENGTHS(10) FIXED BIN(31);/* long. nom. palabra clave*/DCL DATA_LENGTHS(10) FIXED BIN(31);/* long. de datos variables*/

/********************************************************************//* Parámetros de mandato de rastreo *//********************************************************************/DCL AREA_DESCRIPTION(10) CHAR(40);DCL AREA_DESCRIPTION_LENGTH(10) FIXED BIN(31);DCL AREA_PTR(10) PTR;DCL AREA_LENGTH(10) FIXED BIN(31); /* Long. de área en */

/* AREA_PTR que debe *//* visualiz . */

/********************************************************************//* Parámetro de palabra clave y valor de mandato START *//********************************************************************/DCL 1 START_KEYWORDS,

3 START_KEYWORDS_1 CHAR(8) INIT(’DSQSMODE’),3 START_KEYWORDS_2 CHAR(8) INIT(’DSQSDBUG’),3 START_KEYWORDS_3 CHAR(8) INIT(’DSQSSUBS’),3 START_KEYWORDS_4 CHAR(8) INIT(’DSQSPLAN’);

DCL 1 START_KEYWORD_VALUES,3 START_KEYWORD_VALUES_1 CHAR(11) INIT(’BATCH’),3 START_KEYWORD_VALUES_2 CHAR(3) INIT(’ALL’),3 START_KEYWORD_VALUES_3 CHAR(4) INIT(’DSNA’),3 START_KEYWORD_VALUES_4 CHAR(6) INIT(’QMFDEV’);

/********************************************************************//* Parámetro de palabra clave y valor de mandato SET *//********************************************************************/DCL 1 SET_KEYWORDS,

3 SET_KEYWORDS_1 CHAR(7) INIT(’MYVAR01’),3 SET_KEYWORDS_2 CHAR(5) INIT(’SHORT’),3 SET_KEYWORDS_3 CHAR(7) INIT(’MYVAR03’);

DCL 1 SET_VALUES,3 SET_VALUES_1 FIXED BIN(31),3 SET_VALUES_2 FIXED BIN(31),3 SET_VALUES_3 FIXED BIN(31);

/********************************************************************//* Parámetro de palabra clave y valor de mandato GET *//********************************************************************/DCL 1 GET_TRACE_KEYWORDS,

3 GET_TRACE_KEYWORDS_1 CHAR(16) INIT(’DSQAO_APPL_TRACE’);

DCL 1 GET_TRACE_VALUE,3 GET_TRACE_VALUE_1 CHAR(1);

/********************************************************************//* Programa principal *//********************************************************************/

Capítulo 8. Mandatos de QMF en aplicaciones 65

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Page 78: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DSQCOMM = ’’;DSQ_COMM_LEVEL = DSQ_CURRENT_COMM_LEVEL;

/********************************************************************//* Iniciar una sesión de interfaz de consulta *//********************************************************************/NUMBER_OF_PARAMETERS = 4;COMMAND_LENGTH = LENGTH(START_QUERY_INTERFACE);KEYWORD_LENGTHS(1) = LENGTH(START_KEYWORDS_1);KEYWORD_LENGTHS(2) = LENGTH(START_KEYWORDS_2);KEYWORD_LENGTHS(3) = LENGTH(START_KEYWORDS_3);KEYWORD_LENGTHS(4) = LENGTH(START_KEYWORDS_4);DATA_LENGTHS(1) = LENGTH(START_KEYWORD_VALUES_1);DATA_LENGTHS(2) = LENGTH(START_KEYWORD_VALUES_2);DATA_LENGTHS(3) = LENGTH(START_KEYWORD_VALUES_3);DATA_LENGTHS(4) = LENGTH(START_KEYWORD_VALUES_4);

CALL DSQCIPX(DSQCOMM,COMMAND_LENGTH,START_QUERY_INTERFACE,NUMBER_OF_PARAMETERS,KEYWORD_LENGTHS,START_KEYWORDS,DATA_LENGTHS,START_KEYWORD_VALUES,DSQ_VARIABLE_CHAR);

/********************************************************************//* Averiguar valor de rastreo actual *//********************************************************************/NUMBER_OF_PARAMETERS = 1;COMMAND_LENGTH = LENGTH(GET_GLOBAL_VARIABLES);KEYWORD_LENGTHS(1) = LENGTH(GET_TRACE_KEYWORDS_1);DATA_LENGTHS(1) = LENGTH(GET_TRACE_VALUE_1);

CALL DSQCIPX(DSQCOMM,COMMAND_LENGTH,GET_GLOBAL_VARIABLES,NUMBER_OF_PARAMETERS,KEYWORD_LENGTHS,GET_TRACE_KEYWORDS,DATA_LENGTHS,GET_TRACE_VALUE,DSQ_VARIABLE_CHAR);

/********************************************************************//* Establecer valores numéricos en consulta utilizando mandato SET *//********************************************************************/NUMBER_OF_PARAMETERS = 3;COMMAND_LENGTH = LENGTH(SET_GLOBAL_VARIABLES);KEYWORD_LENGTHS(1) = LENGTH(SET_KEYWORDS_1);KEYWORD_LENGTHS(2) = LENGTH(SET_KEYWORDS_2);KEYWORD_LENGTHS(3) = LENGTH(SET_KEYWORDS_3);DATA_LENGTHS(1) = 4;DATA_LENGTHS(2) = 4;DATA_LENGTHS(3) = 4;SET_VALUES_1 = 20;SET_VALUES_2 = 40;SET_VALUES_3 = 4;

CALL DSQCIPX(DSQCOMM,COMMAND_LENGTH,SET_GLOBAL_VARIABLES,NUMBER_OF_PARAMETERS,KEYWORD_LENGTHS,SET_KEYWORDS,DATA_LENGTHS,

66 Developing DB2 QMF applications

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Page 79: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

SET_VALUES,DSQ_VARIABLE_FINT);

/********************************************************************//* Ejecutar una consulta *//********************************************************************/COMMAND_LENGTH = LENGTH(RUN_QUERY);

CALL DSQCIPL(DSQCOMM,COMMAND_LENGTH,RUN_QUERY);

/********************************************************************//* Mandato de rastreo *//********************************************************************/IF GET_TRACE_VALUE_1 ^= ’0’ THEN DO;

NUMBER_OF_PARAMETERS = 3;COMMAND_LENGTH = LENGTH(TRACE_COMMAND);AREA_DESCRIPTION(1) = ’DSQAO_APPL_TRACE:’;AREA_DESCRIPTION_LENGTH(1) = LENGTH(AREA_DESCRIPTION(1));AREA_PTR(1) = ADDR(GET_TRACE_VALUE_1);AREA_LENGTH(1) = LENGTH(GET_TRACE_VALUE_1);AREA_DESCRIPTION(2) = ’DSQ_COMM_LEVEL:’;AREA_DESCRIPTION_LENGTH(2) = LENGTH(AREA_DESCRIPTION(2));AREA_PTR(2) = ADDR(DSQ_COMM_LEVEL);AREA_LENGTH(2) = LENGTH(DSQ_COMM_LEVEL);AREA_DESCRIPTION(3) = ’DSQ_CURRENT_COMM_LEVEL:’;AREA_DESCRIPTION_LENGTH(3) = LENGTH(AREA_DESCRIPTION(3));AREA_PTR(3) = ADDR(DSQ_CURRENT_COMM_LEVEL);AREA_LENGTH(3) = LENGTH(DSQ_CURRENT_COMM_LEVEL);

CALL DSQCIPX(DSQCOMM,COMMAND_LENGTH,TRACE_COMMAND,NUMBER_OF_PARAMETERS,AREA_DESCRIPTION_LENGTH,AREA_DESCRIPTION,AREA_LENGTH,AREA_PTR,DSQ_VARIABLE_FINT);

END;

/********************************************************************//* Imprimir los resultados de la consulta *//********************************************************************/COMMAND_LENGTH = LENGTH(PRINT_REPORT);

CALL DSQCIPL(DSQCOMM,COMMAND_LENGTH,PRINT_REPORT);

/********************************************************************//* Finalizar la sesión de la interfaz de consulta *//********************************************************************/COMMAND_LENGTH = LENGTH(END_QUERY_INTERFACE);

CALL DSQCIPL(DSQCOMM,COMMAND_LENGTH,END_QUERY_INTERFACE);

END DSQABFP;

Cuando el programa detecta que el usuario tiene el rastreo activado, se escribe lasiguiente salida de rastreo en la salida de rastreo de QMF:

Capítulo 8. Mandatos de QMF en aplicaciones 67

|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

||

Page 80: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

--------------------------------------------------------------------DSQDTRC :TRACE COMMAND OUTPUT (14534)TRACE_AREA_NUMBER

341033B8: 00000001 *.... *TRACE_AREA_TITLE

341036A4: C4E2D8C1 D66DC1D7 D7D36DE3 D9C1C3C5 *DSQAO_APPL_TRACE*341036B4: 7A *: *

TRACE_AREA_CONTENTS340D0A14: F2 *2 *--------------------------------------------------------------------

DSQDTRC :TRACE COMMAND OUTPUT (14535)TRACE_AREA_NUMBER

341033B8: 00000002 *.... *TRACE_AREA_TITLE

341036A4: C4E2D86D C3D6D4D4 6DD3C5E5 C5D37A *DSQ_COMM_LEVEL: *TRACE_AREA_CONTENTS

340D0500: C4E2D8D3 6EF0F0F1 F0F0F24C *DSQL>001002< *--------------------------------------------------------------------

DSQDTRC :TRACE COMMAND OUTPUT (14536)TRACE_AREA_NUMBER

341033B8: 00000003 *.... *TRACE_AREA_TITLE

341036A4: C4E2D86D C3E4D9D9 C5D5E36D C3D6D4D4 *DSQ_CURRENT_COMM*341036B4: 6DD3C5E5 C5D37A *_LEVEL: *

TRACE_AREA_CONTENTS33F00C50: C4E2D8D3 6EF0F0F1 F0F0F24C *DSQL>001002< *---------------------------------------------------------------------

Mandatos que pueden utilizarse en una minisesión del informe RUNQUERY

Algunos mandatos que se utilizan en aplicaciones de QMF fuerzan la visualizaciónde un informe mientras se está ejecutando la aplicación. Este entorno se denominaminisesión de informe. Puede limitar el acceso de los usuarios a QMF utilizandominisesiones de informe. En una minisesión de informe, minisession, QMF limitalos mandatos que un usuario puede emitir al visualizar un informe.

Una minisesión de informe se comporta como una sesión anidada (una sesióndentro de una sesión). En minisesiones, la sesión de QMF inicial permaneceintacta, pero pasa a estar temporalmente no disponible mientras se visualiza uninforme. La minisesión pasa a ser la sesión activa actual hasta que se emite elmandato END (o se pulsa la tecla de función End). Cuando finalice unaminisesión, o bien volverá a la sesión de QMF inicial o bien a la aplicación dellamada, en función de cómo haya escrito la aplicación. La aplicación no puedeseguir emitiendo mandatos subsiguientes hasta que finalice la minisesión delinforme.

La variable global DSQDC_DISPLAY_RPT de QMF determina si QMF inicia unaminisesión de informe. Esta situación se debe a que DSQDC_DISPLAY_RPTdetermina si QMF visualiza un informe después de ejecutar una consulta.Establezca esta variable en 1 para visualizar el informe y en 0 para suprimir lavisualización.

Cuando inicie QMF utilizando la interfaz invocable:v El valor predeterminado de la variable global DSQDC_DISPLAY_RPT es 1.

Cuando QMF se inicia con DSQQMFn (tanto de forma interactiva como enmodalidad de proceso por lotes), el valor predeterminado de esta variable globales 0. La variable n aquí representa el identificador de idioma nacional.

68 Developing DB2 QMF applications

|||||||||||||||||||||||||||

|

Page 81: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Si ejecuta un procedimiento o una aplicación que ejecute una consulta, QMFiniciará una minisesión de informe. QMF muestra el informe que resulta de laconsulta en dicha minisesión.

v Si el procedimiento o aplicación no ejecutan una consulta, o si ejecuta unaconsulta desde el panel Consulta SQL, QMF no inicia una minisesión deinforme.

Si no desea que QMF inicie una minisesión de informe, emprenda una de lassiguientes acciones:v Cambie el valor de DSQDC_DISPLAY_RPT por 0.v Establezca el parámetro DSQADPAN en 0 cuando inicie QMF desde la interfaz

invocable.

Desde una minisesión de informe, puede emitir los siguientes mandatos ysinónimos para estos mandatos. Las restricciones se muestran entre paréntesis.v BACKWARDv LIMINFv CANCEL (when pop-up window is active)v CICSv DISPLAY REPORTv DISPLAY CHARTv ENDv FORWARDv GET GLOBALv HELPv INTERACTv ISPFv LEFTv MESSAGEv PRINT REPORTv PRINT CHARTv QMFv RETRIEVEv RIGHTv SAVE DATAv SET PROFILEv SET GLOBALv SHOW REPORTv SHOW CHARTv SWITCH (when online help is active)v TOPv TSO

Los siguientes mandatos no son válidos en una minisesión:v ADDv CANCELv CHANGE

Capítulo 8. Mandatos de QMF en aplicaciones 69

Page 82: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v CHECKv CLEARv CONNECTv CONVERTv DELETEv DESCRIBEv DISPLAY (QUERY, PROC, PROFILE, FORM, ANALYTICS)v DRAWv EDITv ENLARGEv ERASEv EXITv EXPORTv EXTRACTv GETQMFv IMPORTv INSERTv INTERACTv LISTv NEXTv PREVIOUSv PRINT (QUERY, PROC, PROFILE, FORM)v REDUCEv REFRESHv RESET GLOBALv RESET (Query, Proc, Form)v RUNv SAVEv SEARCHv SHOWv SORTv SPECIFYv STARTv SWITCHv TRACE

QMF devuelve un mensaje de error cundo se ejecuta una CLIST o unprocedimiento que emite un mandato restringido.

70 Developing DB2 QMF applications

|

|

Page 83: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).“SET GLOBAL (sintaxis ampliada)” en la página 53Para crear sus propias variables globales y utilizarlas en mandatos de QMF comovariables de sustitución, emita el mandato SET GLOBAL. También puede utilizar elmandato SET GLOBAL para establecer valores para variables globales de QMFpredefinidas, que empiezan por "DSQ."

Sinónimos de mandatoPuede crear sinónimos de mandato, que son mandatos que se parecen a losmandatos de QMF y pueden realizar gran variedad de funciones.

Los sinónimos de mandato proporcionan flexibilidad y resultan muy útiles para losusuarios. Por ejemplo, los sinónimos de mandato pueden realizar la función de unmandato o iniciar una aplicación.Información relacionada:

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de cómo crear sinónimos de mandato

Capítulo 8. Mandatos de QMF en aplicaciones 71

Page 84: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

72 Developing DB2 QMF applications

Page 85: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 9. Exportación e importación de objetos

Puede escribir aplicaciones que emitan los mandatos EXPORT e IMPORT de QMFpara colocar objetos fuera del entorno de QMF.

Las aplicaciones pueden exportar tablas y los siguientes objetos de QMF:v DATOSv CONSULTAv PROCv FORMATOv INFORMEv DIAGRAMA

Cuando exporte objetos excepto informes u objetos que tengan formato CSV, QMFconvertirá el objeto en un formato externalizado. QMF almacena el formatoexternalizado del objeto en un archivo UNIX (sólo en el caso de datos o tablas), unconjunto de datos deTSO o una cola de datos de CICS. El formato externalizado delos objetos de QMF es un poderoso elemento del desarrollo de aplicaciones deQMF.

El mandato IMPORT lee el formato externalizado y coloca el objeto en elalmacenamiento temporal de QMF o en la base de datos. La ubicación depende decómo se emita el mandato.Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca de la sintaxis de los mandatos EXPORT eIMPORT y acerca de las restricciones de determinados tipos de datos o entornos.

Qué se puede hacer un con archivo de UNIX exportado, un conjuntode datos de TSO o una cola de datos de CICS

Los mandatos EXPORT e IMPORT de QMF en los objetos de datos resultan útilesen distintas situaciones.

Por ejemplo, puede utilizar los mandatos IMPORT e EXPORT para cumplir estosobjetivos:v Proporcionar resultados de consultas a la aplicación

Utilice el mandato EXPORT de QMF para obtener datos de la base de datos enla aplicación.

v Crear objetos dentro de la aplicación y utilizarlos en QMFPuede crear un objeto fuera del entorno de QMF utilizando el formatoapropiado para dicho objeto. Por ejemplo, en el caso de datos o tablas, cuandoimporte el archivo de UNIX enQMF, se creará un nuevo objeto de QMF. Tambiénse crea un nuevo objeto al importar un conjunto de datos de TSO o una cola dedatos de CICS que contiene el objeto.No puede importar informes, gráficas ni archivos CSV en QMF. En su lugar,para informes y gráficas puede importar los datos y los formularios que se hanutilizado para crearlos.

© Copyright IBM Corp. 1982, 2013 73

||

|||

Page 86: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Poner a disposición los objetos de QMF a otros entornos o productos.Atención: Proceda con cuidado al transferir objetos exportados entre sistemascon distintos CCSID o conjuntos de caracteres como, por ejemplo, entre sistemasEBCDIC y ASCII, o entre distintos entornos de la NLF. La transferencia deobjetos entre sistemas de esta forma puede presentarlos de forma inutilizable.Si necesita importar una consulta QBE o solicitada en un programa que no seaQMF, primero debe utilizar el mandato CONVERT QUERY. El mandatoCONVERT QUERY convierte la consulta en una consulta SQL que puedeexportar y utilizarse en otros productos.Puede transferir objetos QMF entre QMF bajo TSO, ISPF o un lote de z/OSnativo. También puede transferir objetos de QMF bajo CICS utilizando colas dedatos transitorios fuera de partición deCICS.

v Guardar objetos y datos fuera de la base de datosPor ejemplo, a la mitad de un programa, puede exportar los datos de forma queun programa externo pueda manipularlos.

v Crear aplicaciones bilingüesPuede crear un formulario de QMF en el idioma preferente y traducirlo al inglésutilizando la opción LANGUAGE en el mandato EXPORT. También puedeutilizar la opción LANGUAGE en los mandatos IMPORT y EXPORT paratraducir un formulario en inglés al idioma preferente.

Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca del mandato CONVERT.

Exportación frente a guardado de datosLa diferencia entre los mandatos EXPORT DATA y SAVE DATA radica en dónde ycuándo se almacena el objeto.

Esta diferencia en cómo se almacenan los objetos afecta a lo que se puede hacercon los resultados:v La exportación de un objeto de datos genera un archivo UNIX, un conjunto de

datos de TSO o una cola de datos de CICS. Puede leer, modificar o imprimircada elemento de forma secuencial mediante programas de aplicación de QMF uotras aplicaciones externas.

v El mandato SAVE DATA genera una tabla de base de datos. Las acciones queutilizan datos guardados deben emprenderse a través de la base de datos.

Exportación de objetos de datos y tablas de base de datos

Puede exportar datos y objetos de tabla enQMF, con formato de intercambiointegrado (Integrated Exchange Format - IXF), XML o valor separado por comas(CSV). El formato de QMF es el predeterminado.

Cuando ejecute una consulta, QMF mostrará el resultado en un informe. Los datosen bruto del informe se almacenan en una área de almacenamiento temporal comoun objeto de datos. Las tablas relacionales y las vistas que se almacenan en la basede datos se conocen como objetos de tabla.

Puede exportar datos y objetos de tabla a áreas de almacenamiento externas deQMF. Los formatos exportados de una tabla en almacenamiento temporal (DATA)

74 Developing DB2 QMF applications

|||

||

Page 87: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

y una tabla almacenada en la base de datos (TABLE) son idénticas. Un objeto quese exporta como datos puede importarse como una tabla y viceversa, a no ser quelos datos estén formato CSV.

Puede crear sus propias tablas fuera de QMF. Utilice el formato de QMF, IXF oXML e importe el contenido de archivo de UNIX, del conjunto de datos de TSO ode la cola de datos d eCICS que contiene la tabla. Incluya los campos necesarios yañada sus propios datos, según resulte necesario. A continuación, importe elarchivo de UNIX, el conjunto de datos de TSO o la cola de datos de CICS en QMFcomo un objeto de tabla.Conceptos relacionados:“Reglas e información para exportar e importar tablas y objetos de datos” en lapágina 102QMF exporta datos y objetos de tabla al almacenamiento temporal y tiene reglasacerca de su asignación a dicho almacenamiento. QMF también tiene formasespecíficas para el manejo de errores de importación.Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca de la sintaxis de los mandatos EXPORT eIMPORT.

Exportación de datos o tablas en formato de QMFEl archivo de datos que se exporta utilizando el mandato EXPORTAR con lacláusula FORMATODATOS=QMF consta de dos partes: los registros de cabecera,que describen los datos en los registros y los registros de datos, que contienen losdatos.

Registros de cabeceraLos registros de cabecera describen los datos exportados en el archivo de datos.

La longitud de registro de un archivo de datos externos es la longitud de una filade datos, tal como se describe en el registro de datos. Los registros de cabecera quepreceden a los registros de datos tienen la misma longitud que los registros dedatos. Si la información de cabecera excede la longitud del registro de datos, seescriben varios registros de datos.

Se utilizan dos formatos para los registros de cabecera. Uno se utiliza paranombres de columna cortos, y el otro para los nombres de columna largos. Lassiguientes tablas muestran la información incluida en cada formato de los registrosde cabecera.

Tabla 9. Información de registro de cabecera para nombres de columna cortos

Posición de byte Información y tipo

1-8 Nivel de formato de objeto de QMF (8 caracteres de datos)

Estas posiciones de byte avisan a REL 1.0 cuando todos los nombres decolumnas son nombres abreviados y la variable globalDSQDC_SHORT_EXPT está establecida en 1.

9-10 Número de registros de cabecera (entero con signo de media palabra)

11-12 Número de columnas de datos (entero con firma de media palabra)

13-30 Nombre de columna

El ancho de columna máximo es de bytes.

Capítulo 9. Exportación e importación de objetos 75

|||

||||

||

||

||

|||

||

||

||

|

Page 88: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 9. Información de registro de cabecera para nombres de columnacortos (continuación)

Posición de byte Información y tipo

31-32 Tipo de datos (entero con firma de media palabra)

Los códigos de tipo de datos se muestran en Tabla 11 en la página 77.Este campo almacena el hexadecimal equivalente a los códigosdecimales mostrados en la tabla de cada tipo de datos.

33-34 El ancho de la columna (entero con signo de media palabra); para lamayoría de tipos de datos con este ancho es el ancho de la columna enbytes, con las siguientes excepciones:

v En columnas DECIMAL, el primer byte de la media palabrarepresenta la precisión y el segundo byte representa la escala.

v En las columnas GRAPHIC y VARGRAPHIC, este valor refleja elancho de los caracteres de doble byte.

v En las columnas FLOAT, este valor es 4, lo que indica una comaflotante de precisión simple, o de 8, que indica una coma flotante deprecisión doble.

v En las columnas DECFLOAT, este valor es de 8 para los valores deformato largo y de 16 para los valores de formato ampliado.

35 Nulos permitidos: Y si se permiten nulos; N si no se permiten (1carácter de datos)

36 Byte no utilizado

El bloque se describe con repeticiones de 13-36 bytes para tantas columnas comohaya en los datos.

Tabla 10. Información de registro de cabecera para nombres de columna largos

Posición de byte Información y tipo

1-8 Nivel de formato de objeto de QMF (8 caracteres de datos)

Estas posiciones de byte indican a REL 3.0 cuando la variable globalDSQDC_SHORT_EXPT está establecida en 0.

9-10 Número de registros de cabecera (entero con signo de media palabra)

11-12 Número de columnas de datos (entero con firma de media palabra)

13-42 Nombre de columna

la longitud de nombre máxima predeterminada es de 30 bytes. Sinembargo, puede utilizar la variable global DSQDC_SHORT_EXPT paraestablecer un ancho de columna máximo de 18 bytes antes de exportarlos datos. En dicho caso, se utiliza el formato del registro de cabecerapara nombres de columna cortos.

43-44Tipo de datos (entero con firma de media palabra)

Los códigos de tipo de datos se muestran en Tabla 11 en la página 77.Este campo almacena el hexadecimal equivalente a los códigosdecimales mostrados en la tabla de cada tipo de datos.

76 Developing DB2 QMF applications

||

||

||

|||

||||

||

||

|||

||

|||

|||

||

||

|||||

Page 89: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 10. Información de registro de cabecera para nombres de columnalargos (continuación)

Posición de byte Información y tipo

45-46 El ancho de la columna (entero con signo de media palabra); para lamayoría de tipos de datos con este ancho es el ancho de la columna enbytes, con las siguientes excepciones:

v En columnas DECIMAL, el primer byte de la media palabrarepresenta la precisión y el segundo byte representa la escala.

v En las columnas GRAPHIC y VARGRAPHIC, este valor refleja elancho de los caracteres de doble byte.

v En las columnas FLOAT, este valor es 4, lo que indica una comaflotante de precisión simple, o de 8, que indica una coma flotante deprecisión doble.

v En las columnas DECFLOAT, este valor es de 8 para los valores deformato largo y de 16 para los valores de formato ampliado.

El ancho de columna máximo predeterminado es de 30 bytes. Sinembargo, puede utilizar la variable global DSQDC_SHORT_EXPT paraestablecer un ancho de columna máximo de 18 bytes antes de exportarlos datos. En dicho caso, se utiliza el formato del registro de cabecerapara nombres de columna cortos.

47 Nulos permitidos: Y si se permiten nulos; N si no se permiten (1carácter de datos)

48 Byte no utilizado

El bloque descrito por repeticiones de 13-48 bytes para tantas columnas como hayen los datos.

Los códigos de tipo de datos se muestran en esta tabla. Los códigos hexadecimalesque aparecen en la primera columna se utilizan para indicar cada tipo de datosmostrado en la tercera columna.

Tabla 11. Códigos de tipo de datos

Código enhexadecimal Código en decimal Tipo de datos Significado

X'180' 384 DATE Fecha

X'184' 388 TIME Hora

X'188' 392 TIMESTAMP Indicación de fecha yhora

X'1C0' 448 VARCHAR Carácter de longitudvariable

X'1C4' 452 CHAR Carácter de longitudfija

X'1D0' 464 VARGRAPHIC Gráfica de longitudvariable

X'1D4' 468 GRAPHIC Gráfica de longitudfija

X'1E0' 480 FLOAT Coma flotante

X'1E4' 484 DECIMAL Decimal

X'1EC' 492 BIGINT Entero grande

X'1F0' 496 INTEGER Entero

Capítulo 9. Exportación e importación de objetos 77

|||||

Page 90: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 11. Códigos de tipo de datos (continuación)

Código enhexadecimal Código en decimal Tipo de datos Significado

X'1F4' 500 SMALLINT Entero pequeño

X'38C' 908 VARBINARY Binario de longitudvariable

X'390' 912 BINARY Binario de longitudfija

X'3E4' 996 DECFLOAT(16) andDECFLOAT(34)

Coma flotantedecimal de formatolargo y coma flotantedecimal de formatoampliado

X'990' 2448 TIMESTAMP WITHTIME ZONE

Indicación de fecha yhora con husohorario

Las columnas que contienen tipos de datos DATE, TIME, TIMESTAMP oTIMESTAMP WITH TIME ZONE siempre se exportan en formato ISO.Referencia relacionada:“Variables globales que controlan varias visualizaciones” en la página 225Las variables globales DSQDC controlan la visualización de determinados tipos deinformación. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.

Registros de datosLos registros de datos tienen un formato de bloque fijo (FB) y contienen los datosque deben exportarse.

La longitud máxima permitida de un registro de datos es de 7000 bytes. Lalongitud de un registro de datos es la suma de los anchos de los tipos de datosque se incluyen en el registro. Utilice la siguiente tabla para calcular los anchos decada tipo de datos.

Tabla 12. Anchos de registros de datos. Calcule el ancho de un registro de datos particularañadiendo el número de bytes en cada columna.

Tipo de datos Indicador nuloCampo delongitud SO/SI Datos

Carácter

8 para valores deformato largo; 16 paravalores de formatoampliado 2

Longitud en cabecera(LIH)

Fecha

8 para valores deformato largo; 16 paravalores de formatoampliado 2 LIH

78 Developing DB2 QMF applications

Page 91: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 12. Anchos de registros de datos (continuación). Calcule el ancho de un registro dedatos particular añadiendo el número de bytes en cada columna.

Tipo de datos Indicador nuloCampo delongitud SO/SI Datos

Coma flotante

8 para valores deformato largo; 16 paravalores de formatoampliado 2 8

Coma flotante decimal 2

8 para valores deformato largo; 16 paravalores de formatoampliado

Entero grande

8 para valores deformato largo; 16 paravalores de formatoampliado 2 LIH

Entero

8 para valores deformato largo; 16 paravalores de formatoampliado 2 LIH

Número entero pequeño

8 para valores deformato largo; 16 paravalores de formatoampliado 2 LIH

Hora

8 para valores deformato largo; 16 paravalores de formatoampliado 2 LIH

Indicación de fecha yhora

8 para valores deformato largo; 16 paravalores de formatoampliado 2 LIH

Indicación de la horacon huso horario 2 2 LIH

Decimal 2 (Precisión + 2) // 2

Gráfico 2 2 (LIH × 2)

Carácter variable 2 2 LIH

Gráfico variable 2 2 2 (2 × LIH)

Binario 2 LIH

Binario variable 2 2 LIH

Capítulo 9. Exportación e importación de objetos 79

Page 92: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Importante: El LIH es el ancho indicado en el registro de cabecera de la columnaen cuestión.

Cada registro de datos tiene 2 bytes de información sobre el indicador, que puedetener los valores y significados mostrados en esta tabla:

Tabla 13. Valores hexadecimales que muestran la validez de los registros de datos

Valor Significado

X'0000' La columna contiene datos válidos.

X'FFFF' oX'FFFE'

La columna contiene un valor nulo; todos los datos de la columna sonirrelevantes.

Interpretación de un objeto de datos en formato QMFPuede calcular la longitud del registro de cabecera cuando disponga de la longitudde los registros de datos.

Por ejemplo, supongamos que exporta los siguientes datos de la tabla Q.STAFF:ID NAME COMM

------ --------- ----------10 SANTS -20 PERNAL 612.45

En este ejemplo, cada registro de datos tiene 23 bytes de longitud. Tabla 10 en lapágina 76 muestra los 12 primeros bytes que contienen información del nivel y delnúmero.

Calcule los anchos de cada columna tal como se muestra en esta tabla:

Tabla 14. Cálculo de anchos de columna

Nombre decolumna Tipo de datos

Ancho de columna(longitud en cabecera) Ancho de columna

ID SMALLINT 2 2 + 2 = 4

EMPLEADO VARCHAR 9 2 + 2 + 9 = 13

COMISION DECIMAL (7,2) 7 (7 + 1)/2 + 2 = 6

Longitud del registro dedatos:

23

Hay 24 bytes para cada columna de datos y hay tres columnas. Por lo tanto, paraeste objeto de datos de tres columnas, la cabecera es de 84 bytes:

(12 + (24 x 3) = 84)

Cada registro de cabecera tiene la misma longitud que los registros de datos: 23bytes. Los 84 bytes se dispersan entre cuatro registros de cabecera de 23 bytes; elúltimo registro se rellena con espacios en blanco.

Esta cabecera de ejemplo muestra la cabecera del informe y su representaciónhexadecimal. 40 es el código hexadecimal de un carácter en blanco. Los númerosde tipo invertido se asocian con notas que siguen al ejemplo.

80 Developing DB2 QMF applications

Page 93: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

El siguiente ejemplo muestra los datos del informe y la representación hexadecimalde dichos datos. Para obtener información sobre lo que significan las posiciones delos bytes, consulte Tabla 10 en la página 76.

�1� REL 3.0Nivel de formato de objeto: 3.0

El nivel de formato del objeto indica a QMF qué versión del formato deobjeto está utilizando este objeto en cuestión. Cada vez que se modifica unformato de objeto de QMF, se cambia el número de nivel; los formatos deobjeto no se cambian con cada release nuevo.

�2� X'0004'Número de registros de cabecera: 4

�3� X'0003'Número de columnas de datos: 3

�4� X'C9 C4'Nombre de columna: ID

�5� X'1F4'Tipo de datos: SMALLINT

�6� X'0002'Ancho de columna: 2

�7� X'D5'Nulos permitidos: N significa que no

�8� X'0A'Valor de la primera columna del primer registro de datos: 10

�9� X'07'Longitud del nombre de la segunda columna del primer registro de datos:7

R E L 3 . 0 I D�1�

1 D9 C5 D3 40 F1 4B F0 40 0004 0003 C9 C4 40 40 40 40 40 40 40 40 40�2� �3� �4�

N N A M E2 40 40 40 40 40 40 40 01F4 0002 D5 00 D5 C1 D4 C5 40 40 40 40 40 40

�5� �6� �7�Y C O M M

3 40 40 40 40 40 40 40 40 01C0 0009 E8 00 C3 D6 D4 D4 40 40 40 40 40S

4 40 40 40 40 40 40 40 40 40 01E4 07 02 E8 00 40 40 40 40 40 40 40

Figura 13. Registros de cabecera de ejemplo para un objeto de datos exportado en formatode QMF. 40 es el código hexadecimal de un carácter en blanco.

10 S A N D E R S1 00 00 00 0A 00 00 00 07 E2 C1 D5 C4 C5 D9 E2 00 00 FF FF 00 00 00 40 40

�8� �9� �10�20 P E R N A L

2 00 00 00 14 00 00 00 06 D7 C5 D9 D5 C1 D3 00 00 00 00 00 00 61 24 5C

Figura 14. Registros de datos de ejemplo para un objeto de datos exportado en formato deQMF

Capítulo 9. Exportación e importación de objetos 81

Page 94: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

�10� X'FFFF'Información de indicador: la columna contiene un valor nulo

Exportación de datos o tablas en formato IXFCuando se utiliza el mandato EXPORT para exportar un objeto de datos o unatabla con la opción DATAFORMAT=IXF, los datos se exportan en formato deintercambio integrado (Integrated Exchange Format - IXF). QMF admite unsubconjunto de IXF.

EL conjunto de datos de TSO o la cola de datos de CICS que contienen los datos ola tabla exportados consisten en los siguientes registros:v Registro de cabecera (H)v Registro de tabla (T)v Registros de columna (C)v Registros de datos (D)

El conjunto de datos o cola de datos de CICS exportado consiste en un registro Hseguido de un registro T. El registro T contiene un recuento de la cantidad deregistros seguidos de un registro T. Hay un registro C para cada columna de latabla. Los registros D siguen a los registros C. Hay un registro D para cada fila dela tabla. La distribución de los registros se visualiza en el siguiente gráfico:

Registro de cabecera (H)Un registro de cabecera (que es obligatorio) en formato IXF es el primer registro enconjunto de datos o cola de datos de CICS.

El registro de cabecera es un registro de 42 bytes que contiene datos de caracteres.En esta tabla se muestra el formato del registro H:

Tabla 15. Partes de un registro de cabecera en un conjunto de datos o una cola de datosde IXF que contiene un objeto de datos o una tabla de base de datos exportados

Posición de byteInformación y tipo

01 Indicador de registro de cabecera (H)

02-04 Conjunto de datos de TSO o identificador de cola de datos deCICS

RegistroH

RegistroT

RegistroC

RegistroC

RegistroD

RegistroD

Una por columna Una por fila

Figura 15. Disposición de registros en un conjunto de datos o cola de datos de CICSexportado (formato IXF)

82 Developing DB2 QMF applications

Page 95: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 15. Partes de un registro de cabecera en un conjunto de datos o una cola de datosde IXF que contiene un objeto de datos o una tabla de base de datosexportados (continuación)

Posición de byteInformación y tipo

05-08 Versión de IXF; la versión puede ser uno de los siguientes tipos:

v 0000, da soporte a datos o tablas que contienen nombres de columnacortos (18 o menos caracteres) y ninguna columna TIMESTAMP WITHTIME ZONE

v 0001, da soporte a datos o tablas que contienen al menos un nombre decolumna largo (19 caracteres o más) y ninguna columna noTIMESTAMP WITH TIME ZONE

v 0002, da soporte a datos o tablas que contienen nombres de columnacortos (18 o menos caracteres) y al menos una columna TIMESTAMPWITH TIME ZONE

v 0003, da soporte a datos o tablas que contienen al menos un nombre decolumna largo (19 caracteres o más) y al menos una columnaTIMESTAMP WITH TIME ZONE

09-14 Nombre de producto de origen (QMF)

15-20 Nivel de release de producto de origen (VAR1M0)

21-28 Fecha de creación del conjunto de datos o cola de datos de CICS, en elformulario AAAAMMDD

29-34 Hora de creación del conjunto de datos o cola de datos de CICS, en elformulario HHMMSS

35-39 El número de registros que precede al primer registro D (datos) en elconjunto de datos o cola de datos de CICS; este valor es un valornumérico de cinco dígitos expresado en un formulario de carácter

40 Indicador DBCS que indica si los datos DBCS son una posibilidad; Y o N

41-42 Espacios en blanco

Registro de tabla (T)Un registro de tabla en formato IXF sigue al registro de cabecera. Cada conjunto dedatos o cola de datos que contiene un objeto en formato IXF debe tener un registroT. Un registro de tabla contiene información sobre la tabla y datos sobre el objetoque se ha exportado con el mandato EXPORT TABLE o EXPORT DATA.

Los nombres de tablas que se exportan en formato IXF se truncan a los 18caracteres y los nombres de propietario se truncan a los 8 caracteres. Si ejecuta unaconsulta y exporta el objeto DATA resultante, el registro de tabla contendré unnombre y un propietario en blanco.

En esta tabla se muestra el formato de un registro T:

Tabla 16. Partes de un registro de tabla en un conjunto de datos o cola de datos IXF quecontienen un objeto de datos exportado o una tabla de base de datos

Posición de byteInformación y tipo

01 Indicador de registro de tabla (T)

02-03 Longitud de nombre de datos (18)

Capítulo 9. Exportación e importación de objetos 83

|

Page 96: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 16. Partes de un registro de tabla en un conjunto de datos o cola de datos IXF quecontienen un objeto de datos exportado o una tabla de base de datos (continuación)

Posición de byteInformación y tipo

04-21 Nombre de la tabla a partir de la que se recuperan los datos: alineada a laizquierda, rellenada con espacios en blanco a la derecha

Todo el campo de 18 bytes está en blanco si la tabla no tiene ningúnnombre.

22-29 Calificador del nombre de datos; nombre del propietario de la tabla debase de datos a partir de la que se recuperan los datos

El campo de 8 bytes está en blanco si la tabla no tiene un propietario.

30-41 Origen de datos (base de datos)

42 Convenio utilizado para describir datos: C para datos de columna

43 Formato de datos: C para carácter (OUTPUTMODE=CHARACTER); Mpara máquina (OUTPUTMODE=BINARY)

44 Ubicación de datos: I para interna

45-49 Recuento de registros (C) de columna: un valor numérico en unformulario de caracteres que especifica el número de registros C antes delprimer registro (D) de datos

50-51 Reservado

52-81 Espacios en blanco

Registros de columna (C)Un registro de columna en formato IXF describe las características de los datos dela columna. Hay un registro de columna para cada columna de la tabla.

Cuando hay un nombre de columna que supera los 18 caracteres, el campo delnombre de columna en el registro de columna debe aumentarse de 10 a 30caracteres. El número de versión IXF que se utiliza en el registro de cabecera nosólo depende de si hay un nombre de columna que supera los 18 caracteres, sinotambién de si los datos contienen una columna TIMESTAMP WITH TIME ZONE.Tabla 15 en la página 82 muestra los números de versión IXF utilizados en cadacaso.

La siguiente tabla muestra el formato de un registro de columna de datos o tablasque no contienen ninguna columna TIMESTAMP WITH TIME ZONE (números deversión IXF 0000 o 0001). Para obtener información sobre datos o tablas quecontienen una o varias columnas TIMESTAMP WITH TIME ZONE (números deversión IXF 0002 o 0003), consulte Tabla 18 en la página 85.

Tabla 17. Formato IXF sin ninguna columna TIMESTAMP WITH TIME ZONE (números deversión IXF 0000 o 0001)

Posición de byte Información y tipo

01 Indicador de registro de columna (C)

02-03 Longitud de nombre de columna

84 Developing DB2 QMF applications

Page 97: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 17. Formato IXF sin ninguna columna TIMESTAMP WITH TIME ZONE (números deversión IXF 0000 o 0001) (continuación)

Posición de byte Información y tipo

04-21 El nombre de la columna, tal como se obtiene de la base de datos o esgenerado por QMF (en el caso de que la columna originalmente notenía un nombre)

El nombre se alinea a la izquierda y se rellena con espacios en blancoa la derecha, si resulta necesario.

22 o 34 Indicador que indica si se permiten nulos; Y o N

23 o 35 Indicador de columna seleccionado (Y)

24 o 36 Indicador de columna de clave (Y)

25 o 37 Clase de datos (R)

26-28 o 38-40 Tipo de datos (para códigos de tipo de datos, consulte Tabla 20 en lapágina 88)

29-33 o 41-45 Página de códigos

34-38 o 46-50 Reservado

39-43 o 51-55 Longitud de datos de columna; un valor decimal en formato decaracteres

Si el tipo de datos es DECIMAL, los primeros 3 bytes representan laprecisión de datos y los siguientes 2 bytes representan la escala. Si eltipo de datos es BIGINT, INTEGER, SMALLINT, DATE o TIME, estecampo está en blanco porque la longitud es inherente en el tipo dedatos.

44-49 o 56-61 Posición de inicio de datos de la columna; un valor decimal enformato de caracteres

Este valor refleja el desplazamiento de los datos de una columnadesde el inicio del registro de datos.

Si la columna permite nulos, este campo apunta al indicador nulo. Sila columna no permite nulos, apunta a los propios datos. Si lacolumna permite nulos, el espacio del indicador nulo siempre se dejaen el registro. La posición de inicio se basa en el primer byte quecontiene datos. Por ello, los primeros cinco bytes de del registro (D) dedatos no se incluyen en ninguna consideración de la posición de iniciode los datos reales. (La primera posición de datos es la posición 1, nola posición 0.)

50-79 o 62-91 La información de la etiqueta de columna, si está disponible (si no loestá, estas posiciones de bytes contienen espacios en blanco)

80-81 o 92-93 Dos bytes de ceros en formato de caracteres (00)

Si los datos o la tabla contienen una o varias columnas TIMESTAMP WITH TIMEZONE, el formato del registro de columna será el siguiente:

Tabla 18. formato IXF con una o varias columnas TIMESTAMP WITH TIME ZONE (númerosde versión IXF 0002 o 0003)

Posición de byte Información y tipo

01 Indicador de registro de columna (C)

02-03 Longitud de nombre de columna

Capítulo 9. Exportación e importación de objetos 85

Page 98: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 18. formato IXF con una o varias columnas TIMESTAMP WITH TIME ZONE (númerosde versión IXF 0002 o 0003) (continuación)

Posición de byte Información y tipo

04-21 El nombre de la columna, tal como se obtiene de la base de datos o esgenerado por QMF (en el caso de que la columna originalmente notenía un nombre)

El nombre se alinea a la izquierda y se rellena con espacios en blancoa la derecha, si resulta necesario.

22 o 34 Indicador que indica si se permiten nulos; Y o N

23 o 35 Indicador de columna seleccionado (Y)

24 o 36 Indicador de columna de clave (Y)

25 o 37 Clase de datos (R)

26-29 o 38-41 Tipo de datos (consulte Tabla 20 en la página 88 para obtener códigosde tipos de datos)

30-34 o 42-46 Página de códigos

34-38 o 47-50 Reservado

39-43 o 51-55 Longitud de datos de columna; un valor decimal en formato decaracteres

Si el tipo de datos es DECIMAL, los primeros 3 bytes representan laprecisión de datos y los siguientes 2 bytes representan la escala. Si eltipo de datos es BIGINT, INTEGER, SMALLINT, DATE o TIME, estecampo está en blanco porque la longitud es inherente en el tipo dedatos.

44-49 o 56-61 Posición de inicio de datos de la columna; un valor decimal enformato de caracteres

Este valor refleja el desplazamiento de los datos de una columnadesde el inicio del registro de datos.

Si la columna permite nulos, este campo apunta al indicador nulo. Sila columna no permite nulos, apunta a los propios datos. Si lacolumna permite nulos, el espacio del indicador nulo siempre se dejaen el registro. La posición de inicio se basa en el primer byte quecontiene datos. Por ello, los primeros cinco bytes de del registro (D) dedatos no se incluyen en ninguna consideración de la posición de iniciode los datos reales. (La primera posición de datos es la posición 1, nola posición 0.)

50-79 o 62-91 La información de la etiqueta de columna, si está disponible (si no loestá, estas posiciones de bytes contienen espacios en blanco)

80-81 o 92-93 Dos bytes de ceros en formato de caracteres (00)

Registros de datos (D)Los registros de datos en formato IXF tienen el formato de bloque variable (VB).Hay un registro de datos para cada fila en la tabla.

Esta tabla muestra el formato de un registro de datos:

Tabla 19. Formato de un registro de datos en un conjunto de datos IXF o una cola de datosque contiene una tabla o un objeto de datos exportado

Posición de byteInformación y tipo

01 Indicador de registro de datos (D)

86 Developing DB2 QMF applications

Page 99: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 19. Formato de un registro de datos en un conjunto de datos IXF o una cola de datosque contiene una tabla o un objeto de datos exportado (continuación)

Posición de byteInformación y tipo

02-04 Reservado

05 Espacio en blanco

06-fin deregistro

Datos de fila en formato binario o de caracteres, en función de si el byte43 del registro de tabla es M (máquina) o C (carácter)

El byte 6 representa el inicio (posición 1) de los datos de fila de la primeracolumna.

Formato de datos de columna

Los datos en los registros D para n columnas se colocan de lado a lado, como semuestra en esta figura.

Para cada columna, los datos consisten en un indicador nulo seguido por lospropios datos. Si se permiten nulos (el byte 22 o 34 del registro C tiene un valor Y),entonces los bytes 44-49 o 56-61 de cada registro C apunta al indicador nulo queprecede a los datos para dicha columna. Si no se permiten los nulos (el byte 22 o34 del registro C tiene un valor N), entonces los bytes 44-49 o 56-61 apuntan a lospropios datos. No obstante, en este último caso, el espacio para el indicador nulose deja en el registro de datos. La primera posición en los bytes 44-49 o 56-61 vienerepresentada por el valor 1, que apunta al byte 6 de un registro D (los bytes del 1al 5 se ignoran).

La representación del indicador nulo depende de lo que se especifique paraOUTPUTMODE: carácter o binario. OUTPUTMODE se refleja en el byte 43 delregistro T: C para carácter o M para máquina (binario). Cuando el formato dedatos es carácter, se utiliza 1 byte para el indicador nulo:v Un guión (-) indica que los datos son nulosv Un espacio en blanco indica que los datos no son nulos

Cuando el formato de datos es binario, se utilizan 2 bytes para el indicador nulo:v X'FFFF' indica que los datos son nulosv X'0000' indica que los datos no son nulos

Para obtener más información sobre el indicador nulo, consulte los ejemplos queayudan a interpretar un objeto en formato IXF.Conceptos relacionados:“Interpretación de un objeto exportado en formato IXF” en la página 96Un ejemplo que le ayudará a interpretar los datos exportados en formato deintercambio integrado (Integrated Exchange Format - IXF).

Formato de la columna por tipo de datosLa longitud y el formato de los datos de columna IXF en registros D puede diferiren función de OUTPUTMODE.

Columna1

Columna2

Columnan

Figura 16. Formato de datos de columna en registros D

Capítulo 9. Exportación e importación de objetos 87

Page 100: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Esta tabla muestra la longitud y el formato de los datos de columna en registros Dde cada tipo de datos de los formatos de exportación binarios y de caracteres. Enla tabla, IXFCLENG hace referencia al contenido de los bytes 39-43 o 51-55 de unregistro C (longitud de datos de columna).

Tabla 20. Formato de los datos de columna IXF por tipo de datos

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

384 DATE El valor de IXFCLENG no es significativo para este tipo dedatos. La longitud (10 bytes) es inherente en el tipo dedatos.

El formato es:

aaaa-mm-dd

donde aaaa representa el año, mm el mes y dd el día. aaaa,mm ydd deben ser caracteres numéricos. Los ceros inicialesno se pueden omitir. El rango permitido para aaaa es0001-9999; para mm es 01-12. El rango de dd depende delmes. Por ejemplo, el siguiente valor especifica una fecha del28 de febrero de 2002:

2002-02-28

Igual que el formatocarácter

388 TIMEEl valor de IXFCLENG no es significativo para este tipo dedatos. La longitud (8 bytes) es inherente en el tipo de datos.

El formato es:

hh.mm.ss

donde hh representa la hora en formato de 24 horas, mmson los minutos y ss los segundos. hh, mm y ss deben sercaracteres numéricos. No se pueden omitir los cerosiniciales. Los rangos permitidos son:

v 00 - 23 para hh

v 00 - 59 para mm

v 00 - 59 para ss

El valor especial 24.00.00 para la medianoche es válido.Ejemplos:

10.37.42 es 10:37:42 AM08.00.00 es 8 AM exactamente23.30.00 es 11:30 PM

Igual que el formatocarácter

88 Developing DB2 QMF applications

Page 101: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 20. Formato de los datos de columna IXF por tipo de datos (continuación)

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

392 TIMESTAMP La longitud de TIMESTAMP(0) es 19; la longitud deTIMESTAMP(n) es 20+n, donde n es un número del 1 al 12.Por ejemplo, una columna definida como TIMESTAMP(12)tiene una longitud de 32.

El formato es:

aaaa-mm-dd-hh.mm.ss.nnnnnnnnnnnn

donde aaaa es el año, mm es el mes, dd es el día, hh es lahora en formato de 24 horas, mm son los minutos, ss son lossegundos y nnnnnnnnnnnn son fracciones de segundo. Losrangos válidos de año, mes, día, hora, minutos y segundosson los mismos que los de los tipos de datos DATE y TIME.

Ejemplos:

2010-12-31-23.59.59.999999999999(la última fracción de segundo en 2010)

2010-01-01-00.00.00.000000000001(la primera fracción de segundo en 2010)

24.00.00.000000000000 es válido para la parte de hora deuna indicación de fecha y hora.

Igual que el formatocarácter

448VARCHAR

LONG VARCHAR

IXFCLENG es la longitud máxima de la serie de caracteres.La longitud de datos consiste en n bytes indicados porIXFCLENG precedido por un campo de recuento decaracteres de 5 bytes. (El rango permitido para n es 0-32704y para el campo de recuento es 0-n.) El número decaracteres indicado por el campo de recuento es válido; elresto no es significativo. Por ejemplo, en IXFCLENG=00010,los datos tienen este formato:

00005JONESxxxxx

En este formato, cada x es un carácter en blanco (X'40').

IXFCLENG es lalongitud máxima dela serie de caracteres.La longitud de datosconsiste en n bytesindicados porIXFCLENGprecedido de uncampo de recuentobinario de 2 bytes.(El rango permitidopara n es 1-32704 ypara el campo derecuento es 0-n.) Elnúmero de caracteresindicado por elcampo de recuentoes válido; el resto noes significativo. Porejemplo, enIXFCLENG=00010, elformato de datos esel siguiente:

nnJONESxxxxx

En este formato,nn=X'0005' y cada xes un carácter enblanco (X'40').

Capítulo 9. Exportación e importación de objetos 89

Page 102: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 20. Formato de los datos de columna IXF por tipo de datos (continuación)

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

452 CHAR IXFCLENG es la longitud de la serie de caracteres. Lalongitud de los datos viene indicada por n bytes deIXFCLENG. (El rango permitido para n es 1-254). Porejemplo, en IXFCLENG=00005, los datos adoptan esteformato:

JONES

En este formato, JONES es la serie de caracteres de 5 bytesque apuntada por los bytes 44-49 o 56-61 del registro C.

Igual que el formatocarácter

464VARGRAPHIC

LONGVARGRAPHIC

IXFCLENG es el número máximo de caracteres de doblebyte (2×n bytes). La longitud de datos consiste en un campode recuente de 5 bytes, más dos veces el número de bytesindicado por IXFCLENG, más 2 (para caracteres dedesplazamiento). El número de caracteres de 2 bytes en elcampo de recuento es un carácter de desplazamiento desdeteclado estándar (X'0E') inmediatamente anterior a los datosy un carácter de desplazamiento a teclado estándar (X'0F')inmediatamente después de los datos. El resto puede no sersignificativo. (El rango permitido para n es 1-16352 y parael campo de recuento, el rango permitido es de 0-n.) Porejemplo, en IXFCLENG = 00006, los datos adoptan esteformato:

00003oZZYYXXixxxxxx

En este formato, la letra o es un carácter de desplazamientodesde teclado estándar, i es un carácter de desplazamiento ateclado estándar y cada x es un carácter en blanco (X'40').

La longitud de datosconsiste en uncampo de recuentobinario de 2 bytesseguido dos vecespor el número debytes indicado porIXFCLENG. El rangopermitido paraIXFCLENG es1-16352 y para elcampo de recuentoes 0-IXFCLENG. Elnúmero de caracteresde 2 bytes en elcampo de recuentoes válido. No haycaracteres de carácterde desplazamientodesde tecladoestándar ni decarácter dedesplazamiento ateclado estándaralrededor. El restopuede no sersignificativo. Porejemplo, enIXFCLENG = 00008,los datos adoptaneste formato:

nnZZYYXXWWxxxxxxxx

En este formato,nn=X'0004' y cada xes un carácter enblanco (X'40').

90 Developing DB2 QMF applications

Page 103: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 20. Formato de los datos de columna IXF por tipo de datos (continuación)

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

468 GRAPHIC IXFCLENG es el número de caracteres de doble byte (2*nbytes). La longitud de datos es de 2*n bytes más un SO(X'0E') que precede inmediatamente a los datos, y un SI(X'0F') que sigue inmediatamente a los datos. Por ejemplo,en IXFCLENG=00005, los datos adoptan este formato:

oZZYYXXWWVVi

En este formato, la letra o es un carácter de desplazamientodesde teclado estándar y i es un carácter de desplazamientoa teclado estándar.

Igual que el formatocarácter, excepto queno hay caracteres dedesplazamiento ateclado estándar nicaracteres dedesplazamientodesde tecladoestándar en la seriede datos

Por ejemplo, enIXFCLENG=00005, elformato de datos esel siguiente:

ZZYYXXWWVV

Capítulo 9. Exportación e importación de objetos 91

Page 104: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 20. Formato de los datos de columna IXF por tipo de datos (continuación)

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

480 FLOATEl valor en IXFCLENG es de 4 para valores de precisiónsimple y de 8 para valores de precisión doble. La longitud yel formato de los datos viene determinada por la precisióndel valor.

Los valores de precisión simple consisten en hasta 14caracteres con el siguiente formato:

sn.nnnnnnnEsee

Con este formato:v s es un signo opcional (un más, un menos o en el caso de

la primera posición, un espacio en blanco si el número espositivo).

v n representa los dígitos del significante, que puede tenerhasta 8 dígitos. Debe haber un separador decimal en lasegunda posición del significante.

v E significa el principio del exponente.v e representa los dígitos del exponente, que puede ser uno

de dos dígitos.

El valor debe estar en el rango +/-5.4E-79 a +/-7.2E+75.

Ejemplos:

-1.2345679E+076.2345679E-010.0000000E+00

Los valores de doble precisión consisten en hasta 23caracteres en el siguiente formato:

sn.nnnnnnnnnnnnnnnnEsee

Con este formato:v s es un signo opcional (un más, un menos o en el caso de

la primera posición, un espacio en blanco si el número espositivo).

v n representa los dígitos del significante, que puede tenerhasta 18 dígitos. Debe haber un separador decimal en lasegunda posición del significante.

v E significa el principio del exponente.v e representa los dígitos del exponente, que puede tener 1

o 2 dígitos.

El valor debe estar en el rango +/-5.4E-79 a +/-7.2E+75.

Ejemplos:

-1.2345678901234568E+146.23456789012345678E-010.0000000000000000E+00

El valor enIXFCLENG es de 4para valores deprecisión simple y de8 para valores deprecisión doble. Losdatos consisten enun valor de comaflotante de 4 bytesde precisión simple yen un valor de comaflotante de 8 bytesde precisión doble.

92 Developing DB2 QMF applications

Page 105: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 20. Formato de los datos de columna IXF por tipo de datos (continuación)

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

484 DECIMAL Los bytes 39-43 o 51-55 del registro C representan laprecisión o P (primeros 3 bytes) y escala o S (siguientes 2bytes) del número. El rango permitido para P es 0-15. Spuede ser cualquier valor igual o menor a P.

Los datos se formatean como un valor de carácter de P+2bytes (o P+1 bytes si S=0), alineados a la derecha, con elprimer byte reservado para un signo y un separadordecimal (la posición de la cual viene marcada por S) sólopresente si S no es igual a cero. Por ejemplo, si P=005 yS=00, los datos adoptan el siguiente formato:

12345

Si P=006 y S=02, los datos adoptan el siguiente formato:

+2345.10

Si P=004 y S=03, los datos adoptan el siguiente formato:

-8.515

Los bytes 39-43 o51-55 del registro Crepresentan laprecisión o P(primeros 3 bytes) yescala o S (siguientes2 bytes) del número.El rango permitidopara P es 0-15. Spuede ser cualquiervalor igual o menora P.

Los datos consistenen un valor decimal(P+2)/2 bytes enformato decimalempaquetado. Elúltimo byte indica elsigno del valor. Porejemplo, si P=005and S=00, el formatode los datos es elsiguiente:

X’12345C’

Si P=006 y S=02, elformato de los datoses el siguiente:

X’0234510D’

492 BIGINT El valor de IXFCLENG no es significativo para este tipo dedatos. La longitud y el formato de los datos es inherente enel tipo de datos. Los datos consisten en un valor de carácterde 20 bytes, alineados a la derecha, con el primer carácterreservado para un signo. Ejemplos:

0000000000000000033+9223372036854775807-9223372036854775808

El valor deIXFCLENG no essignificativo. Lalongitud y el formatode los datos esinherente en el tipode datos. Los datosconsisten en un valorbinario de 8 bytes.

496 INTEGER El valor de IXFCLENG no es significativo para este tipo dedatos. La longitud y el formato de los datos es inherente enel tipo de datos.

Los datos consisten en un valor de carácter de 11 bytes,alineados a la derecha, con el primer carácter reservadopara un signo. Ejemplos:

0000000013+1187642200-0033588727

El valor deIXFCLENG no essignificativo. Lalongitud y el formatode los datos esinherente en el tipode datos.

Los datos consistenen un valor binariode 4 bytes.

Capítulo 9. Exportación e importación de objetos 93

Page 106: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 20. Formato de los datos de columna IXF por tipo de datos (continuación)

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

500 SMALLINT El valor de IXFCLENG no es significativo para este tipo dedatos. La longitud y el formato de los datos es inherente enel tipo de datos.

Los datos consisten en un valor de carácter de 6 bytes,alineados a la derecha, con el primer carácter reservadopara un signo. Ejemplos:

00023+00763-21311

El valor deIXFCLENG no essignificativo. Lalongitud y el formatode los datos esinherente en el tipode datos.

Los datos consistenen un valor binariode 2 bytes.

908 VARBINARY No aplicableIgual queVARCHAR, exceptoque:v IXFCLENG es la

longitud máxima(número de bytes)de la serie binaria.

v El rango permitidopara n es 0-32704.

912 BINARY No aplicableIgual que CHAR,excepto que:v IXFCLENG es la

longitud (númerode bytes) de lasecuencia de laserie binaria.

v El rango permitidopara n es 1-255.

94 Developing DB2 QMF applications

Page 107: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 20. Formato de los datos de columna IXF por tipo de datos (continuación)

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

996 DECFLOATEl valor en IXFCLENG es de 16 para valores de formatolargo y de 34 para valores de formato ampliado. Lalongitud y el formato de los datos viene determinada por laprecisión del valor.

Los valores de formato largo se componen de hasta 23caracteres con el siguiente formato:

sn.nnnnnnnnnnnnnnEseee

En este formato:v s es un signo opcional (un más, un menos o en el caso de

la primera posición, un espacio en blanco si el número espositivo).

v n representa los dígitos del significante, que puede tenerhasta 16 dígitos. Debe haber un separador decimal en lasegunda posición del significante.

v E significa el principio del exponente.v e representa los dígitos del exponente, que puede tener

hasta 3 dígitos.

El valor debe estar en el rango de +/-1.0E-398 a+/-1.0E+384.

Ejemplos:

-1.234567890123456E+0031.234567890123456E-0150.000000000000000E+000

Los valores de formato ampliado se componen de hasta 42caracteres con el siguiente formato:

sn.nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnEseeee

En este formato:v s es un signo opcional (un más, un menos o en el caso de

la primera posición, un espacio en blanco si el número espositivo).

v n representa los dígitos del significante, que puede tenerhasta 34 dígitos. Debe haber un separador decimal en lasegunda posición del significante.

v E significa el principio del exponente.v e representa los dígitos del exponente, que puede tener

hasta 4 dígitos.

El valor debe estar en el rango de +/-1.0E-6176 a+/-1.0E+6144.

Ejemplos:

-1.234567890123456789012345678901234E+00334.321098765432109876543210987654321E-0001

El valor enIXFCLENG es de 8para valores deformato largo y de16 para valores deformato ampliado.Los datos secomponen de unvalor de comaflotante decimal de 8bytes para el formatolargo y de un valorde coma flotantedecimal de 16 bytespara el formatoampliado.

Capítulo 9. Exportación e importación de objetos 95

Page 108: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 20. Formato de los datos de columna IXF por tipo de datos (continuación)

Código detipo dedatos Tipo de datos

Información de longitud de datos (si OUTPUTMODE =CHARACTER)

Información delongitud de datos (siOUTPUTMODE =BINARY)

2448 TIMESTAMPWITH TIMEZONE

La longitud es 147 para TIMESTAMP(0) WITH TIME ZONEy 148 + n para TIMESTAMP(n) WITH TIME ZONE, donden = 1-12.

El formato es:

yyyy-mo-dd-hh-mm-ss-nnnnnnnnnnnnzth:tm

donde yyyy-mo-dd-hh-mm-ss especifica la indicación de fechay hora de la misma forma que para los datos deTIMESTAMP y:

v nnnnnnnnnnnn especifica un número de 0-12 dígitos querepresenta el número de fracciones de segundo.

v z es un signo más (+) o menús (-) que indica eldesplazamiento de huso horario relativo a la horauniversal coordinada (UTC), anteriormente conocidacomo la hora media de Greenwich (GMT).

v th es un valor de dos dígitos que representa las horas delhuso horario.

v tm es un valor de dos dígitos que representa los minutosdel huso horario.

El rango válido para la parte del huso horario delformato es de -24:00 a +24:00. Para especificar UTC,puede especificar un huso horario de -0:00 o +0:00 osustituir el desplazamiento de huso horario y su signocon una Z mayúscula.

Por ejemplo, 2010-09-30-13.08.36.123456654321-08:00 indicauna hora de 1:08 P.M. y 36.123456654321 segundos el 30 deseptiembre de 2010, en San José, California, en EstadosUnidos. La indicación de fecha y hora de2010-09-30-13.08.36.123456654321Z indica una hora de 1:08P.M. y 36.123456654321 segundos donde UTC está en vigor.

Igual que el formatocarácter

Interpretación de un objeto exportado en formato IXFUn ejemplo que le ayudará a interpretar los datos exportados en formato deintercambio integrado (Integrated Exchange Format - IXF).

Supongamos que la tabla mostrada en el ejemplo de objeto de datos en formatoQMF ahora se exporta con formato IXF (con OUTPUTMODE=CHARACTER). Latabla que debe exportarse es la siguiente:

ID NAME COMM------ --------- ----------

10 SANTS -20 PERNAL 612.45

El conjunto de datos o cola de datos de CICS exportados consisten en un total desiete registros; un registro H, un registro T, tres registros C y dos registros D talcomo se muestra a continuación:HIXF0000QMF VAR1M02010120409560000005NT18 database CCI00003C02ID NYNR50000000 000002 00

96 Developing DB2 QMF applications

Page 109: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

C04NAME YYNR44800000 00009000008 00C04COMM YYNR48400000 00702000023 00D 00010 00007SANDERSxx -D 00020 00006PERNALxxx 00612.45

Los caracteres binarios no imprimibles se muestran como caracteres x. Esta figurafacilita información más detallada sobre estos registros.

Ahora supongamos que la misma tabla se exporta con formato XIF, pero conOUTPUTMODE=BINARY. El conjunto de datos o cola de datos de CICSexportados consisten en los siete registros que se muestran en la tabla:HIXF0000QMF VAR1M02010120409565000005NT18 database CMI00003C02ID NYNR50000000 000003 00C04NAME YYNR44800000 00009000005 00C04COMM YYNR48400000 00702000018 00D xxxxxxxxSANDERSxxxxxxxxD xxxxxxxxPERNALxxxxxxxxx

Indicador de registro

HIXF0000QMF

T18

C02ID

r

C04COMM

D

D

VAR1M02010120409560000005N

base de datosCCI00003

Registro decabecera(H)

Registrode tabla(T)

Tresregistrosde columna(C)

Dos registrosde datos(D)

Fecha y hora 5 registros antes del primer registro D

Recuento de registrosde columna

El formato de datos esde caracteres

Nulos no permitidosPunteros a datos decolumna en registro D

Ancho

NYNR50000000

SMALLINT

000002 00

00

00

C04NAMEYYNR44800000

VARCHARSe permitenvalores nulos

00009000008

YYNR48400000

DECIMAL 7,2

00702000023

00010 00007SANDERSxx-

00020 00006PENAxxx- 00612.45

Ningún nombre de tabla

Datos de col.de COMISIÓN

Datos de col.de NOMBRE

Datos decol. de ID

Pos. 1 dedatos de columna

No significativo

(-) indica que losdatos son nulosRecuento de

caracteres

Figura 17. Formato de registros IXF de ejemplo (OUTPUTMODE=CHARACTER)

Capítulo 9. Exportación e importación de objetos 97

Page 110: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Excepto en los bytes 44-49 o 56-61 (posición inicial de los datos de columna), lainformación en los registros H, T y C es esencialmente la misma. Los datos de losregistros D, no obstante, difieren de forma significativa. La siguiente figuracontiene más información sobre los registros del conjunto de datos o cola de datosde CICS exportados.

Conceptos relacionados:“Interpretación de un objeto de datos en formato QMF” en la página 80Puede calcular la longitud del registro de cabecera cuando disponga de la longitudde los registros de datos.

Exportación de datos o tablas en formato XML

Si los datos o la tabla contienen una columna XML o datos LOB, debe utilizar lacláusula FORMATODATOS=XML en el mandato EXPORTAR DATOS oEXPORTAR TABLA. Este formato también se puede utilizar cuando los datos o latabla que deben exportarse no contienen una columna XML o datos LOB.

HIXF0000QMF

T18

C02ID

C04COMM

VAR1M02010120409565000005N

base de datosCMI00003

El formato de datos es binario

Puntero a inicio dedatos para columna ID

Puntero a inicio dedatos para columna NOMBRE

Puntero a inicio dedatos para columna COMISIÓN

Los dos registros de datos (D) se muestran a continuación en notación hexadecimal con losdistintos campos explicados:

NYNR50000000 000003 00

00

00

C04NAME YYNR44800000 00009000005

YYNR48400000 00702000018

D xxxxxxxxSANTSxxxxxxxx

D 10 S A N T S

C4404040400000000A00000007E2C1D5C4C5D9E20000FFFF0000000040404040

D 20 P E N A

C4404040400000001400000006D7C5D9D5C1D300000000000061245C40404040

D xxxxxxxxPENAxxxxxxxxx

No significativo

Posición 1 dedatos de columna

Posición 1 dedatos de columna

Campo de recuentode caracteres Indica que los datos son nulos

Indica que los datos no son nulos

Datos de columnade ID(posición 3)

Datos de columnade NOMBRE(posición 5)

Datos de columnade COMISIÓN(posición 18)

Figura 18. Formato de registros IXF de ejemplo (OUTPUTMODE=BINARY)

98 Developing DB2 QMF applications

||||

Page 111: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Restricción: QMF sólo soporta operaciones con datos XML cuando estánconectadas con un release de base de datos que admite el tipo de datos XML.

Cuando se exportan datos o tablas en formato XML, los datos se exportan alarchivo de UNIX, al conjunto de datos de TSO o a la cola de datos de CICS que seespecifican en el mandato. QMF utiliza la especificación XML 1.0 (cuarta edición)al importar y exportar datos.

QMF utiliza servicios de análisis de XML de z/OS y servicios de conversiónUnicode de z/OS al procesar datos XML para la exportación o la importación, porlo que estos servicios deben estar configurados y activos.

Todas las etiquetas mostradas en los ejemplos de XML deben estar presentes antesde importar los datos de columna XML. Las etiquetas deben estar presentes en elcontenido del archivo, del conjunto de datos o de la cola de datos de CICS puesQMF utiliza dichas etiquetas para analizar el archivo. Cuando QMF se encuentracon la etiqueta <extensions> al final del archivo, el cursor se cierra y finaliza laimportación. La modificación o la supresión de esta etiqueta da como resultadouna lectura infinita de los datos.

Los datos se exportan como un documento XML en formato UTF-8 de Unicode conun CCSID de 1208. El conjunto de datos o cola de datos de CICS XML exportadoconsiste en registros de cabecera, registros que definen el conjunto de resultados,registros de metadatos para cada columna en los datos o la tabla y registros dedatos para cada fila nueva en los datos o la tabla exportados.Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca de la sintaxis de los mandatos EXPORT eIMPORT.

Registros de cabeceraLos registros de cabecera en el archivo XML exportado contienen la versiónutilizada de XML, el esquema de codificación y la línea que hace referencia a lahoja de estilo que debe utilizarse para formatear el documento XML exportado.

Aquí encontrará un ejemplo de la información que se incluye en las líneas decabecera en un archivo exportado:<?xml version="1.0" encoding="UTF-8" ?>

<!-- ?xml-stylesheet type="text/xsl" href="qmf.xslt" ? -->

Conceptos relacionados:“Hoja de estilo predeterminada” en la página 101QMF proporciona una hoja de estilo que se puede utilizar para formatear losarchivos XML exportados.

Registros que definen el conjunto de resultadosLa definición del conjunto de resultados contiene una definición de espacio denombres y una definición de esquema para el archivo de esquema de QMF que seutiliza con el archivo XML.

Este ejemplo muestra los registros de la definición de conjunto de resultados en unarchivo XML de ejemplo que contiene siete columnas:<DataSet xmlns="http://www.ibm.com/QMF" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ><ResultSet><Metadata><SourceDescription /><ColumnsAmount>7</ColumnsAmount>

Capítulo 9. Exportación e importación de objetos 99

||

Page 112: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

.....Definiciones de cada columna que va aquí.

</Metadata><Data>

.....Datos de cada fila que va aquí.

</Data></ResultSet><Extensions /></DataSet>

Registros de metadatosLos metadatos de columna en un archivo XML exportado consisten en el númerode columnas, nombres de columnas, etiquetas de columnas (si procede), tipos dedatos, longitudes de datos, si los datos son nulos y el formato.

A continuación encontrará un ejemplo de metadatos para una columnadenominada "ID". El archivo XML exportado contiene un bloque de descripción decolumna para cada columna.<ColumnDescription id="1">

<Name>ID</Name><Label>ID</Label><Type>smallint</Type><Width>2</Width><Nullable>false</Nullable><Format>plain</Format>

</ColumnDescription>

Registros de datosEl archivo XML exportado contiene un bloque de definición de fila para cada filade datos exportados. Los registros de datos tienen un formato de VBS.

Una etiqueta <célula> identifica cada columna en la fila por columna tal como semuestra aquí en la primera fila de la tabla de ejemplo Q.STAFF:<Row id="0">

<Cell id="1">10</Cell><Cell id="2">SANDERS</Cell><Cell id="3">20</Cell><Cell id="4">MGR</Cell><Cell id="5">7</Cell><Cell id="6">99999.99</Cell><Cell id="7" null="1" />

</Row>

Cuando se utiliza la cláusula DATAFORMAT=XML en el mandato EXPORT DATAo EXPORT TABLE y los datos contienen una columna definida con el tipo de datosXML, QMF ajusta los datos XML en etiquetas CDATA. Las etiquetas CDATA evitanque el analizador intente procesar los datos XML. Aquí encontrará un ejemplo decómo aparecen los datos XML en un archivo exportado.<Data><Row id="0"><Cell id="1">Murphy</Cell><Cell id="2">1234</Cell><Cell id="3"[CDATA[xml version="1.0" encoding="utf-8"?]]Cell></Row></Data>

¿Cómo QMF valida el XML?Un documento de esquema XML describe la estructura de un documento XML ydefine parámetros para la validez de elementos y atributos dentro del documentoXML.

100 Developing DB2 QMF applications

Page 113: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Se proporciona un archivo de esquema predeterminado con QMF como miembroDSQ1SCEM del conjunto de datos de ejemplo de QMF, que esQMF1110.SDSQSAPn (donde n es un identificador de idioma nacional). Copie estemiembro en el directorio donde se almacena el archivo contiene el documentoXML. Nombre el documento de esquema qmf_data.xsd, que es el nombre deldocumento de esquema predeterminado en QMF para Workstation y QMF paraWebSphere. Puede modificar el archivo de esquema predeterminado de acuerdocon sus necesidades empresariales para el formato de datos XML. Si utiliza unnombre que no sea qmf_data.xsd o utiliza un archivo de esquema distinto, cambieel nombre en todos los archivos que hagan referencia al documento de esquema.Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

Hoja de estilo predeterminadaQMF proporciona una hoja de estilo que se puede utilizar para formatear losarchivos XML exportados.

La hoja de estilo predeterminada (con nombre predeterminado qmf.xslt) sesuministra como un miembro DSQ1STSH de los conjuntos de datos de ejemplo deQMF, QMF1110.SDSQSAPn (donde n es un identificador de idioma nacional).Copie esta hoja de estilo predeterminada en la ubicación del archivo exportado y, acontinuación, abra el documento XML para formatearlo según estasespecificaciones. Si utiliza un nombre distinto para la hoja de estilo, cambie lacabecera en el archivo exportado para que haga referencia al nuevo nombre de lahoja de estilo.Referencia relacionada:“Registros de cabecera” en la página 99Los registros de cabecera en el archivo XML exportado contienen la versiónutilizada de XML, el esquema de codificación y la línea que hace referencia a lahoja de estilo que debe utilizarse para formatear el documento XML exportado.“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

Exportación de datos o tablas en formato CSVPuede exportar datos o tablas en formato CSV (valor separado por comas). Acontinuación, puede descargar los datos exportados en la estación de trabajo en laque se puedan utilizar los datos en formato CSV con aplicaciones como MicrosoftExcel.

Cuando exporte datos o tablas en formato CSV, puede utilizar la opción HEADERpara especificar si exportar cabeceras de columna junto con los datos. El valorpredeterminado es incluir las cabeceras de columna. Si exporta cabeceras decolumna, el valor de la variable global DSQDC_COL_LABELS controlará si debenexportarse etiquetas de columna o nombres de columna. El valor por omisión deDSQDC_COL_LABELS es 1, lo que significa que se exportan las etiquetas decolumna.

Los datos exportados se formatean como filas de valores de columna que seseparan con el separador de columnas. Si se especifica HEADER=YES, una fila de

Capítulo 9. Exportación e importación de objetos 101

|

||||

|||||||

||

Page 114: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

nombres de columna separada por un separador de columnas precederá las filasde los valores de columna. El valor del separador de columnas viene determinadopor el valor Q.PROFILES.DECIMAL del usuario.

Los datos que se exportan en formato CSV se codifican en el esquema decodificación SBCS de DB2 for z/OS local.

Reglas e información para exportar e importar tablas yobjetos de datos

QMF exporta datos y objetos de tabla al almacenamiento temporal y tiene reglasacerca de su asignación a dicho almacenamiento. QMF también tiene formasespecíficas para el manejo de errores de importación.

Asignación de archivos de UNIX, conjuntos de datos de TSO ocolas de datos de CICSEl mandato QMF IMPORT DATA aparece para almacenar los datos en el área delalmacenamiento temporal de QMF y mostrar el informe en la pantalla. En realidad,sólo se almacena y visualiza una parte de los datos. El archivo de UNIX, elconjunto de datos de TSO o la cola de datos deCICS permanecen abiertos yasignados a QMF. QMF lee registros cuando el usuario se desplaza por los datos.

Esta conexión se mantiene hasta que el objeto de datos es sustituido o restablecido,o QMF lee todos los registros. A continuación, el archivo de UNIX, el conjunto dedatos de TSO o la cola de datos de CICS se cierra y ya no se considera asignado aQMF. Una aplicación no debe intentar suprimir o modificar un archivo de UNIX,un conjunto de datos de TSO o una cola de datos de CICS asignada a QMF con unmandato IMPORT DATA. O bien la aplicación debe utilizar otro origen de datos obien debe vaciar el área de almacenamiento temporal de QMF para el objeto dedatos (utilizando un mandato RESET DATA). A continuación, la aplicación puedeintentar modificar o suprimir el archivo, conjunto de datos o cola de datos que estáleyendo.

Durante la ejecución del mandato IMPORT, QMF no bloquea el archivo de UNIX,TSO conjunto de datos o cola de datos de CICS mientras se está leyendo. Norealiza pasos para impedir que el archivo, conjunto de datos ni la cola de datos semodifiquen mientras se está leyendo. Si el archivo, conjunto de datos o cola seborran o modifican antes de que QMF finalice su lectura, los resultados seránimprevisibles y pueden generar un error de sistema.

Puede producirse una solicitud de datos incompleta si no hay suficientealmacenamiento temporal para recuperar todo el objeto que debe exportarse. Sinecesita almacenamiento extra, puede utilizar el parámetro DSQSPILL paraespecificar el uso del almacenamiento de vertido. Si utiliza QMF bajoTSO, puedeespecificar el parámetro DSQSPTYP además del parámetro DSQSPILL para queutilice el almacenamiento ampliado para datos de vertido.Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBúsqueda de información acerca de cómo planificar y especificar el uso dealmacenamiento de vertido.

Errores de exportaciónDespués de que QMF importa datos de un archivo de UNIX, un conjunto de datosde TSO o una cola de datos de CICS, QMF muestra el panel REPORT y unmensaje de confirmación.

102 Developing DB2 QMF applications

|||

||

Page 115: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Si el archivo, el conjunto de datos o la cola de datos contienen errores de formato,QMF no muestra el panel REPORT. Si hay errores de formato, QMF muestra unmensaje de error en el panel del objeto que era actual antes de que QMF procesarael mandato IMPORT. Sin embargo, si el panel del objeto actual era el panelREPORT y QMF encuentra errores en los datos importados, QMF muestra el panelde inicio y un mensaje de error.

Exportación de formularios, informes y consultas asistidasLos objetos de consulta asistida y de formulario se exportan e importan en unformato codificado que representa el objeto en una estructura tabular. Los informestambién se exportan en un formato codificado; no obstante, no pueden importarse.

El formato codificado ayuda a manipular partes individuales de un objeto deforma más fácil. Se aplican las siguientes condiciones cuando se exporta un objetocon el formato codificado:v Todos los números de tabla y campo se escriben como números de cuatro

dígitos.v Las columnas de tabla se escriben de acuerdo con el orden en el que

normalmente aparecen en el objeto, excepto que se mueva la columna con lalongitud máxima al final derecho del registro de tabla y registros de filasasociados.

v Las longitudes numéricas tienen tres dígitos de largo (incluyendo los cerosiniciales, si resulta necesario).

v Se utiliza un carácter en blanco como delimitador en todos los registros.v El delimitador no se escribe siguiente el último carácter de cada registro.v Los espacios en blanco se escriben en todos los campos reservados.v Un registro E es el último registro escrito en el archivo de salida.Referencia relacionada:“Especificación de tamaño de objetos externalizados” en la página 142Las tablas y objetos externos tienen especificaciones de tamaño de registro y deformato de registro que cambian según el tipo de objeto.

Formato general del archivo de exportadoEl formato codificado de un formulario, informe o consulta asistida consta de losregistros de cabecera de formato fijo y de los registros de formato variable de losque se compone el objeto.

Registros de cabeceraLa mayoría de formularios, informes o consultas asistidas exportados tienen unformato variable. No obstante, los registros de cabecera tienen un formato fijo,aunque el conjunto de datos o la cola de datos que contiene los registros pueda serde formato variable.

Estos registros se utilizan para identificar el contenido del formulario, informe oconsulta asistida exportados. El primer registro del conjunto de datos o la cola dedatos exportados es un registro de cabecera. Describe las características del objeto.

Un registro de cabecera contiene la información descrita en esta tabla. Un asteriscoindica que el campo es necesario para la importación.

Capítulo 9. Exportación e importación de objetos 103

Page 116: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 21. Información del registro de cabecera

Posición debyte Información y tipo

01* Indicador de registro de cabecera (H)

02 Espacio en blanco

03-05* Identificador de producto (QMF)

06 Espacio en blanco

07-08 Nivel de release de QMF en el que se ha exportado el formulario, elinforme o la consulta asistida; este número es 17 paraQMF Versión 11Release 1

09 Espacio en blanco

10* Tipo de objeto:

v F para el formulario

v R para el informe

v T para la consulta asistida

11 Espacio en blanco

12-13* Nivel de objeto de QMF:

v 01 para el informe

v 04 para el formulario

v 01 para las consultas asistidas que no contienen una especificación deperiodo de tiempo

v 02 para las consultas asistidas en las que al menos una de las tablas enla consulta tiene una especificación de periodo de tiempo

El nivel de objeto denota un cambio en el formato de un objeto. Cada vezque se cambia el formato en un release de QMF, también se cambia sunivel de objeto. El nivel de objeto sólo aumenta cuando el cambio en elformato podría generar un error en la aplicación.

14 Espacio en blanco

15* El formato de datos del objeto ("E" para el formato codificado utilizadopara exportar formularios, informes y objetos de consulta asistida)

16 Espacio en blanco

17 Estado del objeto: E - Contiene errores (sólo para formulario); W -Contiene aviso; V - Válido

18 Espacio en blanco

19 Indicador de objeto entero o parcial (W para todo el objeto)

20 Espacio en blanco

21 Idioma nacional en uso cuando se ha exportado el objeto (E para inglés)

22 Espacio en blanco

23* Puede crear un formulario, informe o consulta asistida fuera de QMF en elformato apropiado e importarlo en QMF. Codifique una R en esta posiciónde byte si desea que QMF sustituya el objeto en el almacenamientotemporal con el objeto que está importando.

24 Espacio en blanco

25-26 Longitud del área de control al principio de cada registro:

v 01 para formulario

v 02 para informe

v 01 para consulta asistida

104 Developing DB2 QMF applications

||||

||

||

Page 117: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 21. Información del registro de cabecera (continuación)

Posición debyte Información y tipo

27 Espacio en blanco

28-29 Longitud de los campos de longitud de entero especificada en los registrosV y T (03)

30 Espacio en blanco

31-38 Indicación de fecha en formato aa/mm/dd

39 Espacio en blanco

40-44 Indicación de fecha y hora en formato hh:mmmm

45 Espacio en blanco

51 Espacio en blanco

Referencia relacionada:“Exportación de un formulario” en la página 113El objeto de formulario contiene toda la información especificada en todos lospaneles de formularios de QMF. Cuando se exporta un formulario, QMF convierteen formato codificado a todos aquellos paneles de formulario cuyos valores sedesvían de los valores predeterminados.“Exportación de una consulta asistida” en la página 131Un objeto de consulta asistida exportado contiene la información visualizada en elárea de eco del panel principal de Consulta asistida.“Exportación de un informe estándar” en la página 124Cuando QMF muestra un informe, se puede ver el resultado de la interacción entreel formulario y el objeto de datos en el almacenamiento temporal. Un objeto deinforme no existe en el almacenamiento temporal. Cuando exporte un informe,QMF realmente estará exportando la interacción de un formulario y un objeto dedatos.“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

Registros del objeto exportadoExcepto en los registros de cabecera, que son registros de formato fijo, todos losregistros de formularios, informes y consultas asistidas exportados son registros deformato variable. Los registros de formato variable se aceptan en la entrada.

Los registros de formato variable tienen un formulario general que a continuaciónmostramos en esta figura:

A continuación se muestra el contenido del área de control:

Área de control Área de datos de registro

Figura 19. Formulario general de registros de formato variable

Capítulo 9. Exportación e importación de objetos 105

Page 118: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 22. Formulario general de registros de formato variable

Posición de byte Descripción

01 Identificador de registro (H, V, T, R, E, *, L,C)

02 En blanco (a veces se omite; consulte el tipoespecífico de registro de formato variable)

El área de datos de registro es una área de longitud variable que contieneinformación sobre el registro en cuestión. Los campos de esta área se separan conun delimitador (en estos ejemplos se utiliza un carácter en blanco).

Registros de valor de datos (V):

Los registros de valor de formularios, informes o consultas asistidas exportados seutilizan para proporcionar un valor para un único campo en un objeto como, porejemplo, líneas en blanco antes de la cabecera del formulario.

Los registros V contienen:v Un número de campo exclusivo para el objetov La longitud del campov El valor del campo

En la siguiente tabla se muestra el área de control de los registros V:

Tabla 23. Área de control de registros V

Posición de byte Descripción

01 Identificador de registro de valor (V)

02 Espacio en blanco (sólo se utiliza parainformes; se omite en los formularios y lasconsultas asistidas)

En esta tabla se muestra el área de datos de registro de los registros V:

Tabla 24. Área de datos de registro para registros V

Posición de byte Descripción

01 Espacio en blanco

02-05 Número de campo (1001-9999)

06 Espacio en blanco

07-09 Longitud del valor de datos (000-999)

También puede ser un asterisco (*) seguidode dos espacios en blanco. Un asteriscoindica que el valor de datos está delimitadoal final del registro.

10 Espacio en blanco

11-final Datos

En el área de datos de registro de registros V:

106 Developing DB2 QMF applications

Page 119: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Las posiciones de los bytes del área de datos de registro se desplazan desde elfinal del área de control, la longitud de la cual se indica en el registro decabecera.

v Un valor de datos omitido (un fin de registro o sólo espacios en blancosiguiendo al campo de longitud) indica que el campo contiene un valor nulo.

v Si el campo de longitud es cero, se aplica el valor predeterminado para el campoy se emite un mensaje de aviso.

v Si la longitud especificada es diferente a los datos actuales que le siguen, QMFemite un aviso.

Registros de descripción de tabla de datos (T):

En el formato codificado, la mayoría de datos de un objeto aparece en tablas. Estastablas no son tablas relacionales en la base de datos, sino un medio para agruparinformación dentro del formato codificado. Cada registro T define una tabla y cadatabla corresponde a una parte en concreto de un objeto, como cálculos de resumenen el formulario. Por lo tanto, un archivo exportado puede contener muchas deestas tablas codificadas.

Un registro T siempre va seguido de registros R. El registro T describe los registrosR que le siguen. Si no hay registros R que sigan a un registro T, la tabla se omite.

Asegúrese de que su programa de aplicación haga referencia al contenido de tablasde un formulario, informe o consulta asistida exportados utilizando la codificaciónen el registro T para ubicar correctamente los valores de los registros R. Suprograma de aplicación no debe utilizar desplazamientos fijos para ubicarinformación en registros R.

En esta tabla mostramos el área de control de los registros T:

Tabla 25. Área de control de los registros T

Posición de byte Descripción

01 Identificador de registro de tabla (T)

02 Espacio en blanco (sólo se utiliza parainformes; se omite en los formularios y lasconsultas asistidas)

En esta tabla mostramos el área de datos de registro de los registros T. Lasposiciones de los bytes en la tabla son desplazamientos que siguen el final del áreade control, la longitud de la cual viene indicada en el registro de cabecera.

Tabla 26. Área de datos de registro de registros T

Posición de byte Descripción

01 Espacio en blanco

02-05 Número de tabla (1001-9999)

06 Espacio en blanco

07-09 El número de filas (registros R) de esta tabla

El asterisco (*) utilizado en lugar de un valornumérico implica que la tabla consiste entodos los registros R que siguen.

10 Espacio en blanco

Capítulo 9. Exportación e importación de objetos 107

Page 120: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 26. Área de datos de registro de registros T (continuación)

Posición de byte Descripción

11-13 El número de columnas del registro(000-999)

14 Espacio en blanco

15-18, 24-27, ... El número de campo de esta columna(campo repetitivo)

19, 28, ... Espacio en blanco (campo repetitivo)

20-22, 29-31, ... La longitud de los valores de datos de estacolumna (campo repetitivo)

Los bytes del 11 al 13 (número de columnas) indican la cantidad de pares delongitud de valor de número/datos de campo que siguen. Por ello, la informacióndel byte 15 en adelante se repite en cada columna.

Tenga presente la siguiente información sobre los registros T mientras exporta eimporta objetos:v Cuando se importa un formulario o una consulta asistida, el número de registros

R debe coincidir con el recuento de filas especificado en los bytes 07-09 del áreade datos de registro del registro T. De lo contrario, QMF emite un aviso.

v Cuando se importa un formulario o una consulta asistida, el número decolumnas indicado en los bytes 11-13 debe coincidir con los pares denúmero/longitud de campo en los bytes que siguen. Si no es así, QMF emite unaviso.

v El número de pares de número/longitud de campo se limita al número decolumnas de la tabla y su orden es arbitrario.

v Las columnas con una longitud de cero se establecen en sus valorespredeterminados cuando el objeto del área de almacenamiento temporal seactualiza y se emite un aviso. Las columnas no incluidas en esta tabla tambiénse manejan de esta forma. No obstante, con las consultas asistidas, se suministraun valor predeterminado cuando resulta posible. De lo contrario, se produce unerror.

v Para establecer un campo de columna en blanco, la columna debe tener unalongitud positiva en el registro T y un valor en blanco en el registro R.

Registros de fila de tabla (R):

Los registros R de formularios, informes o consultas asistidas exportadosproporcionan un conjunto de valores a una única fila en una tabla codificada. Losregistros R contienen una lista de valores organizados en un orden descrito por elregistro T asociado. Un registro R coincide con la descripción de las posiciones ylongitudes de los valores de datos especificados en el registro T.

En esta tabla se muestra el área de control de los registros R:

Tabla 27. Área de control de registros R

Posición de byte Descripción

01 Identificador de registro de fila (R)

02 Espacio en blanco (sólo se utiliza parainformes; se omite en los formularios y lasconsultas asistidas)

108 Developing DB2 QMF applications

Page 121: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Siguiendo al área de control, el área de datos de los registros R consiste en unaserie de valores separados por un delimitador (carácter en blanco). El formato es elsiguiente:_value.._value..._value..

En este formato, value... representa el valor de datos de esta fila y columna y _ esel delimitador.

Tenga en cuenta la siguiente información cuando trabaje con registros R:v Un registro R debe seguir inmediatamente a otro registro R o a un registro T.v El número de valores de datos debe coincidir con la descripción en el registro T

asociado.v Una longitud de valor de datos de cero en el registro T asociado indica que no

debe aplicarse ningún valor a esta fila y columna del objeto. En otras palabras,la fila y la columna se establecen con su valor predeterminado. Sin embargo, lapresencia del campo en el registro T requiere que el registro R contenga unespacio en blanco extra en este campo. Un valor de longitud cero redunda en unespacio en blanco seguido de otro en el registro R.

Registro de fin de objeto (E):

El registro E de un formulario, informe o consulta asistida exportados especifica elfinal de un objeto exportado. Se trata del último registro de un archivo exportado,que aparece como el carácter E. Para un informe exportado, un registro E vieneseguido por un carácter en blanco para completar su área de control. Para unformulario, el espacio en blanco se omite.

Todos los registros que siguen al registro E se omiten. Si no se incluye un registroE con el archivo que se importa, QMF presupone que un fin del archivo implica elfin del objeto.

Registro de datos de aplicación (*):

Los registros de datos de la aplicación de formularios exportados, informes oconsultas asistidas permiten que los programas de aplicación asocien con suspropios datos con un objeto en el archivo externo. Los programas de aplicaciónutilizan con frecuencia estos registros como registros de comentarios para seguirdescribiendo el objeto en el archivo.

La información que sigue al asterisco se ignora y no tiene ningún efecto sobre elproceso de entrada.

Los registros de datos de aplicación pueden aparecen en cualquier lugar delarchivo externo excepto antes del registro (H) de cabecera. QMF no escriberegistros de datos de aplicación tras la exportación. No obstante, puede utilizarestos registros en elconjunto de datos o cola de datos de CICS que ha creado. Enesta tabla mostramos el contenido de un registro de datos de aplicación:

Tabla 28. Contenido de un registro de datos de aplicación

Posición de byte Descripción

01 Identificador de registro de datos deaplicación (*)

02-fin de registro Datos

Capítulo 9. Exportación e importación de objetos 109

Page 122: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

A continuación encontrará un ejemplo de un registro de datos de aplicación queaparece en un formulario exportado:*Este es el formulario que agrupa por DEPT.

Registros de línea de informe (L):

Cada línea formateada se describe con un registro L. Hay un registro L para cadalínea del informe.

Como ocurre en otros registros de formato variable (V, T y R), los registros Lconsisten en una área de control seguida de una área de datos de registro. Elformato del área de control es parecido al de otros registros. El área de datos deregistro de una área fija que precede a la propia línea de informes formateada. Elárea fija proporciona información sobre la línea de informe que la sigue. En lasiguiente figura se muestra el formato de un registro L.

En esta tabla se muestra el área de control de un registro L:

Tabla 29. Área de control de un registro L

Posición de byte Descripción

01 Identificador de registro de valor (L)

02 Indicador de continuación

Indica si el registro actual sigue en unregistro de continuación de datos:

v C si continúa

Un registro C sigue inmediatamente a unregistro L marcado con un carácter decontinuación en el byte 2 del área decontrol.

v D para los que continúan con losdelimitadores DBCS SO y SI insertados alfinal del registro actual y al principio dela parte de datos del siguiente registro

Cuando se especifica D para el indicadorde continuación en el área de control, elregistro actual es demasiado largo paraajustarse en un único registro físico. En elproceso de partir el registro, se añaden loscaracteres SO (shift out) y SI (shift in) alregistro actual y al siguiente paraconservar la integridad de cualquier DBCSque deba continuar.

v Espacio en blanco si no continúa

En esta tabla se muestra el área de datos de registro de un registro L. Los bytes del6 al 13 son atributos de tipo de línea. El byte 06 siempre es 1. Cada byte en los

Área de control

Área de datosde registro

Área fija Línea de informe

Figura 20. Formato de un registro L

110 Developing DB2 QMF applications

Page 123: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

bytes del 7 al 13 indica la presencia o ausencia del correspondiente atributo de tipode línea en la línea de informe formateada (1 = atributo presente, 0 = atributoausente).

Tabla 30. Área de datos de registro para un registro L

Posición de byte Descripción

01 Espacio en blanco

02-04 Indicador de parte del informe:

110 = Cabecera de página120 = Pie de página de13n = Cabecera de interrupción

(n es el número de interrupción, 1-6)15n = Pie de página de interrupción

(n es el número de interrupción, 1-6)170 = Cabecera de columna171 = Cabecera de detalle180 = Línea de detalle181 = Línea de resumen de grupo190 = Pie de página final

05 Espacio en blanco

06 1

07 Datos

08 Texto

09 Separador

10 Ajuste de columna

Los atributos del ajuste de columna (byte 10)y ajuste de línea (byte 11) se utilizan paraindicar la continuación de una línea deinforme lógico única en múltiples líneas deinforme físico. La presencia de cualquiera delos atributos en un registro de formato Lsignifica que los datos de columna o la líneaajustada continúan en un siguiente registrode formato L.

11 Ajuste de línea

Los atributos del ajuste de columna (byte 10)y ajuste de línea (byte 11) se utilizan paraindicar la continuación de una línea deinforme lógico única en múltiples líneas deinforme físico. La presencia de cualquiera delos atributos en un registro de formato Lsignifica que los datos de columna o la líneaajustada continúan en un siguiente registrode formato L.

Capítulo 9. Exportación e importación de objetos 111

Page 124: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 30. Área de datos de registro para un registro L (continuación)

Posición de byte Descripción

12 Segunda línea de datos (sólo informestransversales)

Los informes transversales que contienencolumnas de suma acumulativa oporcentajes pueden contener dos líneas dedatos para cada resumen (tambiéninterrupción y final) de grupo. La primeralínea de datos de resumen contiene elporcentaje acumulativo o valores de sumaacumulativos de la columna calculados concada valor “transversal” exclusivo. Lasegunda línea de datos de resumen contieneel porcentaje acumulativo o valores de sumaacumulativa de la columna calculada pordebajo de cada grupo (en el informe odentro de una interrupción de control). Eltipo de línea (byte 12) de la segunda líneade datos identifica la segunda línea de datosen informes exportados de esta naturaleza.

13 Reservado

14 Espacio en blanco

El siguiente ejemplo muestra un registro L para una línea de pie de página deinterrupción en un informe que contiene texto y datos:L 151 11100000 DEPARTMENT TOTALS 93,659.45

Registros de continuación de datos (C):

Se utiliza un registro C en un formulario, informe o consulta asistida exportadospara continuar con un valor o conjunto de valores en más de un registro. Sigueinmediatamente al registro que le "continúa". El formato de un registro Ccorresponde al formato del registro original que continúa. QMF sólo utilizaregistros C para continuar los registros L.

En esta tabla se muestra el área de control de un registro C:

Tabla 31. Área de control de un registro C

Posición de byte Descripción

01 Identificador de registro de valor (C)

112 Developing DB2 QMF applications

Page 125: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 31. Área de control de un registro C (continuación)

Posición de byte Descripción

02 Indicador de continuación. Indica si elregistro actual sigue en otro registro C:

v C si continúa

Un registro C sigue inmediatamente a unregistro L marcado con un carácter decontinuación en el byte 2 del área decontrol.

v D para los que continúan con losdelimitadores DBCS SO y SI insertados alfinal del registro actual y al principio dela parte de datos del siguiente registro

Cuando se especifica D para el indicadorde continuación en el área de control, elregistro actual es demasiado largo paraajustarse en un único registro físico. En elproceso de partir el registro, se añaden loscaracteres SO (shift out) y SI (shift in) alregistro actual y al siguiente paraconservar la integridad de cualquier DBCSque deba continuar.

v Espacio en blanco si no continúa

En esta tabla mostramos el área de datos de registro de un registro C. Lasposiciones de los bytes mostradas se desplazan desde el final del área de control,la longitud de la cual viene indicada en el registro de cabecera.

Tabla 32. Área de datos de registro de un registro C

Posición de byte Descripción

01 Espacio en blanco

02-final Valor del conjunto de valores que continúa

Exportación de un formularioEl objeto de formulario contiene toda la información especificada en todos lospaneles de formularios de QMF. Cuando se exporta un formulario, QMF convierteen formato codificado a todos aquellos paneles de formulario cuyos valores sedesvían de los valores predeterminados.

Los siguientes paneles sólo tienen el formato codificado si ha modificado el panel:v FORM.BREAKn, donde n = 1-6v FORM.CALCv FORM.CONDITIONSv Todos los paneles de variación mayores que 1 para FORM.DETAIL

La eliminación de paneles no utilizados del formato externalizado ayuda a ahorrarespacio en el sistema.

Capítulo 9. Exportación e importación de objetos 113

Page 126: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Creación de un formulario predeterminado para ver resultadosde exportación de ejemplo

Puede crear un formulario predeterminado ejecutando cualquier consulta que creeun informe vacío, como la consulta aquí mostrada:SELECT JOBFROM Q.STAFFWHERE NAME=’NO_NAME’

Cuando QMF muestre el informe, introduzca EXPORT FORM TO DEFAULT (incluyendoel parámetro QUEUETYPE=xx en CICS).

Aspecto del formulario exportado

El conjunto de datos o cola de datos de CICS denominado DEFAULT contiene lainformación mostrada en este formato de ejemplo de un formulario exportado:H QMF 17 F 04 E V W E R 01 03 15/01/13 16:20

T 1110 001 011 1112 007 1113 040 1114 007 1115 006 1116 005 1117 005 1118 003 1119 008 1120 0081122 006 1121 050

R CHAR JOB 2 5 C 1 DEFAULTDEFAULT NO

V 1201 001 0V 1202 001 2T 1210 001 003 1212 004 1213 006 1214 055R 1 CENTERV 1301 001 2V 1302 001 0T 1310 001 003 1312 004 1313 006 1314 055R 1 CENTERV 1401 002 NOV 1402 001 1V 1403 001 0T 1410 001 003 1412 004 1413 006 1414 055R 1 RIGHTV 1501 001 1V 1502 003 YESV 1503 003 YESV 1504 003 YESV 1505 003 YESV 1506 003 YESV 1507 003 YESV 1508 003 YESV 1509 003 YESV 1510 003 YESV 1511 004 NONEV 1512 002 NOV 1513 007 DEFAULTV 1514 002 NOV 1515 004 NONEV 2790 001 1V 2791 003 YESV 2805 003 YEST 2810 001 003 2812 004 2813 006 2814 055R 1 LEFTV 2901 002 NOV 2902 001 1V 2904 001 0V 2906 002 NOV 2907 002 NOT 2910 001 003 2912 004 2913 006 2914 055R 1 LEFTV 3080 001 1V 3101 002 NOV 3102 002 NOV 3103 001 0V 3104 001 0T 3110 001 003 3112 004 3113 006 3114 055R 1 LEFTV 3201 002 NOV 3202 001 1V 3203 001 0V 3204 001 1T 3210 001 003 3212 004 3213 006 3214 055

114 Developing DB2 QMF applications

Page 127: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

R 1 RIGHTV 3080 001 2V 3101 002 NOV 3102 002 NOV 3103 001 0V 3104 001 0T 3110 001 003 3112 004 3113 006 3114 055R 1 LEFTV 3201 002 NOV 3202 001 1V 3203 001 0V 3204 001 1T 3210 001 003 3212 004 3213 006 3214 055R 1 RIGHTE

Puede importar el conjunto de datos o cola de datos de CICS predeterminado cadavez que inicie la sesión emitiendo el mandato IMPORT FORM FROM DEFAULT(incluyendo el parámetro QUEUETYPE=xx en CICS) en el procedimiento inicial.

Interpretación del registro de cabecera en la cola o el conjuntode datos exportados

El siguiente ejemplo muestra un registro de cabecera para un formulario de QMF:H QMF 17 F 04 E V W E R 01 03 15/01/13 16:20

Esta tabla explica el ejemplo.

Tabla 33. Ejemplo de un registro de cabecera de formulario

Valor deejemplo Descripción

H QMF 17 F Este registro es un registro de cabecera de formulario de QMF paraVersión 11.

04 La estructura del formulario se encuentra a nivel de objeto 4.

E El formato está codificado (el formato utilizado para formularios, informesy consultas asistidas exportados).

V El formulario exportado no contiene errores ni avisos.

W El archivo contiene todo el formulario.

E Se estaba utilizando el idioma nacional cuando el objeto se ha exportadoen inglés.

R Durante la importación se sustituye el objeto en el almacenamientotemporal.

01 La longitud del área de control es de 1 byte.

03 La longitud de los campos de longitud de enteros es de 3 bytes.

15/01/13La indicación de fecha especifica 15 de enero de 2013.

16:20La indicación de fecha y hora especifica la hora 4:20 PM.

Cuando exporte un formulario desde una sesión que no sea en inglés, o bienpuede exportar el formulario en el idioma de la sesión actual, o bien puede hacerloen inglés. Por ello, es posible que el identificador de idioma nacional en el registroR no refleje en idioma de la sesión desde la que ha exportado el formulario.

Capítulo 9. Exportación e importación de objetos 115

Page 128: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Interpretación de registros del formulario exportado

“Aspecto del formulario exportado” en la página 114 muestra un ejemplo deformulario exportado. El formulario exportado contiene registros V, T y R cuyoscódigos asociados tienen significados especiales que ayudan a interpretar elresultado exportado. Esta tabla explica cada campo y código en el formularioexportado.

El campo 3080, un registro V, actúa como un “desencadenador” para los paneles deinterrupción que lo siguen. Este registro aparece una vez en cada panel deinterrupción del formulario. El valor del campo refleja el número de paneles deinterrupción que describen los campos que siguen al campo 3080.

Tabla 34. Números de campo y tabla de un objeto FORM exportado

Número detabla o campo

Tipo deregistro Descripción Panel de formulario

1110 T Tabla de cabeceras de columna FORM.COLUMNS

1112 R Tipo de datos de columna

El tipo de datos de columna no sevisualiza en los paneles deformulario pero está asociado conel formulario en su formatoexterno.

El tipo de datos de columna no esnecesario cuando se importa unformulario. Si falta durante laimportación, CICS proporcionainformación sobre el tipo de datospredeterminado a partir de loscódigos de edición. (Para obtenermás información, consulte“Importación de un objeto deformulario” en la página 120.)

Durante la exportación, el tipo dedatos de columna que QMFproporciona se basa en el códigode edición especificado. Pare loscódigos de edición U, V, M ocódigos de edición no válidos,QMF especifica la palabra clavedel tipo de datos UNKNOWN.Tabla 35 en la página 120 muestralas palabras clave del tipo dedatos que utiliza QMF.

FORM.COLUMNS

1113 R Cabecera de columna FORM.COLUMNS

1114 R Código de uso de columna FORM.COLUMNS

1115 R Sangría de columna FORM.COLUMNS

1116 R Ancho de columna FORM.COLUMNS

1117 R Código de edición de columna FORM.COLUMNS

1118 R secuencia de columnas FORM.COLUMNS

1119 R Alineación de cabecera decolumna

FORM.COLUMNS

116 Developing DB2 QMF applications

Page 129: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 34. Números de campo y tabla de un objeto FORM exportado (continuación)

Número detabla o campo

Tipo deregistro Descripción Panel de formulario

1120 R Alineación de datos de columna FORM.COLUMNS

1121 R Definición de columna FORM.COLUMNS

1122 R Pasar nulos en definición decolumna

FORM.COLUMNS

1180 T Tabla de cálculos de resumen FORM.CALC

1182 R Número de identificación decálculo

FORM.CALC

1183 R Expresión de cálculo de resumen FORM.CALC

1184 R Ancho de cálculo de resumen FORM.CALC

1185 R Código de edición de cálculo deresumen

FORM.CALC

1186 R Pasar nulos en cálculo FORM.CALC

1201 V Líneas en blanco antes decabecera

FORM.PAGE

1202 V líneas en blanco después de lacabecera

FORM.PAGE

1210 T Tabla de cabecera de página FORM.PAGE

1212 R Número de línea de cabecera depágina

FORM.PAGE

1213 R Alineación de cabecera de página FORM.PAGE

1214 R Texto de encabezamiento depágina

FORM.PAGE

1301 V Líneas en blanco antes del pie FORM.PAGE

1302 V Líneas en blanco después del pie FORM.PAGE

1310 T Tabla de pie de página FORM.PAGE

1312 R Número de línea de pie de página FORM.PAGE

1313 R Alineación de pie de página FORM.PAGE

1314 R Texto del pie de página FORM.PAGE

1401 V Nueva página para texto final FORM.FINAL

1402 V Número de línea de resumen final FORM.FINAL

1403 V Líneas en blanco antes de textofinal

FORM.FINAL

1410 T Tabla de texto final FORM.FINAL

1412 R Número de línea de texto final FORM.FINAL

1413 R Alineación de texto final FORM.FINAL

1414 R Texto final FORM.FINAL

1501 V Espaciado de línea de detalle FORM.OPTIONS

1502 V Numeración para columnas decorte

FORM.OPTIONS

1503 V Texto de corte por omisión FORM.OPTIONS

1504 V Nombre de función en cabecerade columna para agrupación

FORM.OPTIONS

Capítulo 9. Exportación e importación de objetos 117

Page 130: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 34. Números de campo y tabla de un objeto FORM exportado (continuación)

Número detabla o campo

Tipo deregistro Descripción Panel de formulario

1505 V Líneas ajustadas a columnaconservadas en una página

FORM.OPTIONS

1506 V Columna de resumen transversal FORM.OPTIONS

1507 V Separadores para cabecera decolumna

FORM.OPTIONS

1508 V Separadores para resumen deinterrupciones

FORM.OPTIONS

1509 V Separadores de cabeceratransversal

FORM.OPTIONS

1510 V Separadores para resumen final FORM.OPTIONS

1511 V Ancho de líneas de informerecortadas

FORM.OPTIONS

1512 V Volver a numerar página eninterrupciones

FORM.OPTIONS

1513 V Ancho de interrupción o textofinal

FORM.OPTIONS

1514 V Reordenación de columnas FORM.OPTION

1515 V Columnas fijas FORM.OPTIONS

2790 V Número de variación de detalle FORM.DETAIL

2791 V Selección de variación de detalle FORM.DETAIL

2805 V Incluir cabecera de columna FORM.DETAIL

2810 T Tabla de cabecera de detalle FORM.DETAIL

2812 R Línea de texto de cabecera dedetalle

FORM.DETAIL

2813 R Alineación de cabecera de detalle FORM.DETAIL

2814 R Texto de encabezamiento dedetalle

FORM.DETAIL

2901 V Nueva página para texto dedetalle

FORM.DETAIL

2902 V Número de línea de datos decolumna

FORM.DETAIL

2904 V Número de líneas que debensaltarse después del texto dedetalle

FORM.DETAIL

2906 V Repetir encabezamiento de detalle FORM.DETAIL

2907 V Número de líneas de texto dedetalle que deben mantenersejuntas

FORM.DETAIL

2910 T Tabla de texto de detalle FORM.DETAIL

2912 R Número de línea de texto dedetalle

FORM.DETAIL

2913 R Alineación de texto de detalle FORM.DETAIL

2914 R Texto de detalle FORM.DETAIL

3080 V Número de panel de interrupción FORM.BREAKn

118 Developing DB2 QMF applications

Page 131: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 34. Números de campo y tabla de un objeto FORM exportado (continuación)

Número detabla o campo

Tipo deregistro Descripción Panel de formulario

3101 V Nueva página para cabecera deinterrupción

FORM.BREAKn

3102 V Repetir cabecera de interrupción FORM.BREAKn

3103 V Número de líneas que debensaltarse antes de la cabecera deinterrupción

FORM.BREAKn

3104 V Número de líneas que debensaltarse después de la cabecera deinterrupción

FORM.BREAKn

3110 T Tabla de texto de cabecera deinterrupción

FORM.BREAKn

3112 R Número de línea de cabecera deinterrupción

FORM.BREAKn

3113 R Alineación de cabecera deinterrupción

FORM.BREAKn

3114 R Texto de encabezamiento del corte FORM.BREAKn

3201 V Nueva página para texto deinterrupción

FORM.BREAKn

3202 V Línea de resumen de texto deinterrupción

FORM.BREAKn

3203 V Número de líneas que debensaltarse antes del texto deinterrupción

FORM.BREAKn

3204 V Número de líneas que debensaltarse después del texto deinterrupción

FORM.BREAKn

3210 T Tabla de texto de interrupción FORM.BREAKn

3212 R Línea de texto de interrupción FORM.BREAKn

3213 R Alineación de texto deinterrupción

FORM.BREAKn

3214 R Texto de interrupción FORM.BREAKn

3310 T Tabla de condiciones FORMATO.CONDICION

3312 R Número de identificación decondición

FORMATO.CONDICION

3313 R Expresión condicional FORMATO.CONDICION

3314 R Pasar nulos en panel decondiciones

FORMATO.CONDICION

La siguiente tabla muestra las palabras clave de tipo de datos que QMF generapara los códigos de edición especificados en el formulario. En esta tabla, xrepresenta el número de caracteres decimales que deben visualizarse, donde x esun entero del 0 al 99.

Capítulo 9. Exportación e importación de objetos 119

Page 132: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 35. Palabras clave de tipo de datos generadas para códigos de edición especificadosen los paneles de formularios de QMF

Código de edición especificadoPalabra clave de tipo dedatos

C, CW, CT, CDx CHAR

B, BW, X, XW BINARY

G, GW GRAPHIC

E, D, I, J, K, L, P, EZ, DZ, IZ, JZ, KZ, LZ, PZ, DZC, Dx, Ix,Jx, Kx, Lx, Px

NUMERIC

Cualquier código de edición que empiece por los caracteresTD

DATE

Cualquier código de edición que empiece por los caracteresTT

TIME

TSI TIMEST

TSZ TSTMPTZ

M UNKNOWN

U, V UNKNOWN

Códigos de edición no válidos introducidos UNKNOWN

Cuando se exporta un formulario, QMF sólo exporta aquellos paneles de variacióncon valores que se han modificado respecto al valor predeterminado. Por ello, elnúmero total de variaciones en el formulario externo puede ser inferior al que semuestra en el indicador de recuento de variaciones en el panel. QMF puede alterarlos números de variación individuales para devolver las variaciones a unasecuencia continua.

Importación de un objeto de formulario

Cuando importe un formulario, estos campos deberán estar en mayúsculas:v Identificador de registro de todos los registrosv Los siguientes campos en el registro de cabecera:

– Identificador de producto (QMF)– Tipo de objeto (F)– Formato de objeto (E)– Acción contra el objeto (R)

v Valores de tipo de datos (numéricos, caracteres, gráficos o tipos de datosdesconocidos) en registros R de la tabla COLUMNSSi su sitio da soporte a tipos de datos de fecha/hora, los valores de tipo dedatos DATE, TIME, TIMEST y TSTMPTZ también deben estar en mayúsculas.

v Todas las palabras clave de formulario y variables de sustitución utilizadas enlos paneles de formulariosCuando se importa un formulario, todas las entradas en el formulario se dejanintactas. Si una palabra clave del formulario está en minúsculas, se activa elindicador de error en el panel del formulario. Para corregir el error, debe escribirsobre el campo. Si el valor del tipo de datos no está en mayúsculas, se produceun error e IMPORT finaliza.

120 Developing DB2 QMF applications

Page 133: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

El registro T de la tabla COLUMNS (el número de campo 1110) debe seguirinmediatamente al registro de cabecera. El registro T también debe incluir unrecuento numérico del número de filas en formato codificado (no se permite unrecuento de filas *).

Si se lee toda la tabla COLUMNS, los campos no especificados se establecen en susvalores predeterminados y se visualiza el formulario.v Paneles de variación

El campo de número de variación (número de campo 2790) determina qué panelde variación será actualizado por toda la información del panel de variación quesigue al campo. Este registro V debería preceder a todos los otros registros V, T yR de un panel de variación.Si aparece un valor para una variación concreta más de una vez en formatocodificado, los valores posteriores sustituyen a los valores originales. El númerode variaciones del formulario equivale al número de variaciones más alto delformulario. No hay ningún orden necesario para los números de variación alrealizar la importación.

v Formularios traducidosCuando importe un formulario en inglés en una sesión que no sean en inglés yel identificador de idioma nacional en el registro H sea una E, QMF traducirá laspalabras reservadas. QMF traduce las palabras reservadas en el idioma de lasesión actual. Algunos ejemplos de palabras reservadas son valores de lacolumna USAGE en FORM.COLUMNS

v Omisión del tipo de datos, el código de edición y del ancho en un formularioimportadoEn la tabla COLUMNS, el tipo de datos (número de campo 1112), el código deedición (número de campo 1117) y el ancho (número de campo 1116) puedenomitirse opcionalmente cuando se observen las siguientes reglas:– El código de edición debe estar incluido si el tipo de datos y el ancho se

omiten. Basándose en el código de edición especificado, QMF inserta valorespredeterminados apropiados para el tipo de datos y el ancho.

– El tipo de datos debe incluirse si se omiten el código de edición y el ancho.QMF proporciona valores predeterminados para el código de edición y elancho.

– El ancho debe estar acompañado por el tipo de datos o el código de edición.Esta tabla contiene información acerca de valores para el campo que contiene eltipo de datos de la columna. Además de los valores de tipo de datos aquímostrados, hay una palabra clave de tipo de datos UNKNOWN que QMF utilizaen respuesta a un código de edición no válido o U y V.

Tabla 36. Valores del campo que contiene el tipo de datos de la columna

Tipo de datos tal comoaparece en el formularioexternalizado

Código en decimalTipo de datos Significado

DATE 384 DATE Fecha

TIME 388 TIME Hora

TIMEST 392 TIMESTAMP Indicación de fecha y hora

Capítulo 9. Exportación e importación de objetos 121

Page 134: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 36. Valores del campo que contiene el tipo de datos de la columna (continuación)

Tipo de datos tal comoaparece en el formularioexternalizado

Código en decimalTipo de datos Significado

NUMERIC 496500492484480996

INTEGERSMALLINTBIGINTDECIMALFLOATDECFLOAT

EnteroEntero pequeñoEntero grandeDecimalComa flotanteComa flotante decimal

CHAR 448452456904

VARCHARCHARLONG VARCHARROWID

Carácter de longitud variableCarácter de longitud fijaCarácter largo de longitud variableIdentificador de fila

GRAPHIC 464468472

VARGRAPHICGRAPHICLONG VARGRAPHIC

Gráfica de longitud variableGráfica de longitud fijaGráfica de longitud variable larga

BINARY 908912

VARBINARYBINARY

Binario de longitud variableBinario de longitud fija

TSTMPTZ2448 TIMESTAMP WITH TIME

ZONEIndicación de fecha y hora conhuso horario

v Detección de errores durante la importaciónSi QMF detecta un error en el formato del archivo de formulario durante laimportación, la función de importación finaliza. QMF emite un mensaje quedescribe el error y su ubicación en el archivo.Si se encuentra un error en el registro de cabecera y existe un formulario en elárea de almacenamiento temporal, se visualiza el formulario existente. Si elformulario se ha importado satisfactoriamente, QMF muestra el panel deformulario.Si se ha encontrado un error después del registro de cabecera, cualquierformulario existente en el área de almacenamiento temporal se descarta, y sevisualiza el panel de inicio. Sin embargo, si existe el objeto de datos, QMFgenera un formulario predeterminado para los datos pero no lo muestra.Si QMF detecta determinados errores poco importantes, no termina laimportación. En estos casos, QMF emite un mensaje de aviso y, si resultaapropiado, aplica los valores predeterminados. Algunos ejemplos son:– Registros V

- Campos de longitud cero- El campo de longitud especificado no coincide con la longitud de los datos

suministrados.– Registros T

- Longitud de columna cero- El número de columnas especificado no coincide con los siguientes pares

de número/longitud de campo.Puede responder ante los errores y avisos de las siguientes maneras:– Arregle un problema cada vez.

122 Developing DB2 QMF applications

Page 135: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

– Establezca la opción TRACE del perfil en L2 (utilizando el mandato SETPROFILE (TRACE=L2) y ejecute el mandato IMPORT FORM. La opción derastreo L2 rastrea los mensajes de rastreo y mandatos en el nivel de detallesuperior. Esta opción permite ver todos los textos de mensaje relacionadoscon el mandato IMPORT.

El siguiente mandato muestra el texto de mensaje asociado con un código demensaje en concreto:HELP DSQnnnnn

donde nnnnn es un código de mensaje exclusivo de 5 caracteres.Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

Consideraciones sobre los objetos de formulario de QMF enaplicaciones

Es posible que algunos consejos puedan ayudarle a crear y utilizar un formulariode QMF en una aplicación.

Al utilizar un formulario de QMF en una aplicación, tenga en cuenta los siguientespuntos:

Creación de un formulario conjunto de datos o cola de datos de CICS fuera deQMF Si crea un formulario fuera de QMF (no con EXPORT FORM), no es

necesario disponer de un objeto de formulario completo para importarlosatisfactoriamente en QMF. Sólo necesita el registro (H) de cabeceraseguido de los registros T y R de la tabla COLUMNS. Los valorespredeterminados se aplican al resto del formulario cuando se importa.

Al crear su propio formulario de conjunto de datos o cola de datos deCICS, éste no tiene que ser exactamente igual que el conjunto de datos o lacola de datos que se obtiene si se utiliza EXPORT FORM. Por ejemplo,cuando QMF exporta un formulario, todos los valores de datos en unregistro (V) de valores van precedidos de una longitud. No obstante, puedeutilizar un asterisco (*) que indique que el valor de datos está delimitadopor el final del registro cuando importe un formulario.

QMF conserva las líneas en exceso si un recuento de registro R en unformulario importado es menor que el número de líneas predeterminadasque ha asignado para el área asociada en el formulario predeterminado.

Comprobación del nivel de objeto en el registro de cabeceraEl nivel de objeto en el registro de cabecera del conjunto de datos o cola dedatos que contiene un formulario indica el nivel de la estructura delformato en el momento en que se ha generado el formulario. (El nivel deobjeto se indica en los 12 y 13 del registro de cabecera.) Asegúrese de quela aplicación interprete correctamente el contenido del conjunto de datos ode la cola de datos que contiene el formulario. Compruebe que el nivel deobjeto represente el formato en el que se basa la aplicación.

Utilización de registros de datos de aplicaciónLos registros de datos de aplicación pueden resultar útiles en el programade aplicación. Utilice registros de datos de aplicación para incluir suspropios comentarios en un conjunto de datos o cola de datos de CICS paraun objeto de formulario. Puede colocar los registros en cualquier lugar del

Capítulo 9. Exportación e importación de objetos 123

Page 136: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

conjunto de datos o cola de datos de CICS siguiendo al registro decabecera. Cuando QMF lee estos registros, ignora todos los datos delregistro que siguen al carácter *. Por ello, el registro no influye en elproceso de importación.

Restricciones al utilizar formularios en CICSREXX no está disponible en QMF para CICS. Las áreas con formato deQMF que se basan en REXX no funcionan si intenta ejecutar el formularioen el entorno de CICS. Estas áreas incluyen todo lo que se hayaintroducido en los paneles FORM.CALC, los paneles FORM.CONDITIONSy la ventana Especificar definición. Los cálculos de REXX, el formateo defila condicional y las definiciones de columna no están disponibles para losusuarios de QMF para CICS.

Conceptos relacionados:“Importación de formularios y consultas asistidas” en la página 140Tenga en cuenta las reglas para importar un formulario o una consulta asistida.Referencia relacionada:“Exportación de un formulario” en la página 113El objeto de formulario contiene toda la información especificada en todos lospaneles de formularios de QMF. Cuando se exporta un formulario, QMF convierteen formato codificado a todos aquellos paneles de formulario cuyos valores sedesvían de los valores predeterminados.“Registro de datos de aplicación (*)” en la página 109Los registros de datos de la aplicación de formularios exportados, informes oconsultas asistidas permiten que los programas de aplicación asocien con suspropios datos con un objeto en el archivo externo. Los programas de aplicaciónutilizan con frecuencia estos registros como registros de comentarios para seguirdescribiendo el objeto en el archivo.“Registros de cabecera” en la página 103La mayoría de formularios, informes o consultas asistidas exportados tienen unformato variable. No obstante, los registros de cabecera tienen un formato fijo,aunque el conjunto de datos o la cola de datos que contiene los registros pueda serde formato variable.

Exportación de un informe estándarCuando QMF muestra un informe, se puede ver el resultado de la interacción entreel formulario y el objeto de datos en el almacenamiento temporal. Un objeto deinforme no existe en el almacenamiento temporal. Cuando exporte un informe,QMF realmente estará exportando la interacción de un formulario y un objeto dedatos.

Un informe no se puede guardar en la base de datos y un informe exportado no sepuede importar de nuevo en QMF. No obstante, puede utilizar informesexportados para:v Extraer datos del informe y utilizarlos en una aplicaciónv Modificar la apariencia del informe para que la aplicación la vuelva a imprimir

o visualizar

Un informe de ejemplo (antes de la exportación)

Este ejemplo muestra un informe tabular con un nivel de interrupción 1.

124 Developing DB2 QMF applications

Page 137: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Para obtener una lista de números de campo, consulte “Interpretación del registrode cabecera de informe en el conjunto o cola de datos exportado” en la página 126.

Aspecto del informe exportado

A continuación puede observar el formato del informe exportado desde el informetabular de ejemplo.H QMF 17 R 01 E V W E R 02 03 15/01/13 16:20V 1001 006 PERIODV 1002 003 016T 1010 003 006 1013 005 1014 006 1015 006 1016 006 1017 006 1012 008R L 000001 000003 000008 000001 BREAK1R C 000009 000011 000015 000001 GROUPR L2 000016 000018 000027 000001 AVERAGEL 110 10100000 J & H SUPPLY COMPANYL 110 10100000 AVERAGE SALARIES (DEPTS 10, 15, 20)L 110 10100000 REPORT 17L 110 10000000L 110 10000000L 170 10000000 AVERAGEL 170 10000000 DEPT JOB SALARYL 170 10010000 ------ ----- ----------L 181 11000000 10 MGR 20865.86L 151 10010000 ----------L 151 11100000 * 20865.86L 151 10000000L 181 11000000 15 CLERK 12383.35L 181 11000000 MGR 20659.80L 181 11000000 SALES 16502.83

REPORT LINE 1 POS 1 79

J & H SUPPLY COMPANYAVERAGE SALARIES (DEPTS 10, 15, 20)

REPORT 17

AVERAGEDEPT JOB SALARY

------ ----- ----------10 MGR 20865.86

----------* 20865.86

15 CLERK 12383.35MGR 20659.80SALES 16502.83

----------* 15482.33

20 CLERK 13878.68MGR 18357.50SALES 18171.25

----------* 16071.53

==========17473.24

COMPANY NAMEREPORT 17

Figura 21. Un informe de QMF tabular antes de realizar la exportación

Capítulo 9. Exportación e importación de objetos 125

Page 138: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

L 151 10010000 ----------L 151 11100000 * 15482.33L 151 10000000L 181 11000000 20 CLERK 13878.67L 181 11000000 MGR 18357.50L 181 11000000 SALES 18171.25L 151 10010000 ----------L 151 11100000 * 16071.52L 151 10000000L 190 10010000 ==========L 190 11000000 17473.24L 120 10000000L 120 10000000L 120 10100000 COMPANY NAMEL 120 10100000 REPORT 17E

Al exportar un informe, QMF escribe todo el texto del informe formateado coninformación adicional para interpretar el contenido del informe.

El registro de cabecera es el primer registro del archivo exportado. Va seguido delos registros V, T y R apropiados. Si el informe es un informe de estilo transversal,tiene otro grupo de registros V, T y R que sigue al primer grupo.

Además de los registros H, V, T, R y E, los informes exportados también requierendos tipos de registro adicionales:v Línea de informe o registros Lv Continuación de datos o registros C

Estos dos registros siguen al último grupo de registros V, T y R.

Si sólo desea utilizar los datos formateados del informe en la aplicación, puedehacer que QMF envíe la salida de impresión a un conjunto de datos o cola dedatos de CICS. Este conjunto de datos o cola de datos de CICS sólo contiene losdatos formateados sin ninguna información de diseño.

Interpretación del registro de cabecera de informe en el conjuntoo cola de datos exportado

El siguiente ejemplo muestra un registro de cabecera para un informe de QMF:H QMF 17 R 01 E V W E R 02 03 15/01/13 16:20

Esta tabla explica esta ejemplo.

Tabla 37. Ejemplo de un registro de cabecera para un informe

Valor delejemplo Descripción

H QMF 17 R Este registro es una registro de cabecera de informe de QMF para Versión11.

01 La estructura del informe se encuentra a nivel de objeto 1.

E El formato está codificado (el formato utilizado para formularios, informesy consultas asistidas exportados).

V El informe exportado no contiene errores ni avisos.

W El archivo contiene todo el informe.

E El inglés era el idioma nacional utilizado en el momento en que se haexportado el objeto.

126 Developing DB2 QMF applications

Page 139: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 37. Ejemplo de un registro de cabecera para un informe (continuación)

Valor delejemplo Descripción

R Este indicador se ignora.

02 La longitud del área de control es de 2 bytes.

03 La longitud de los campos de longitud de enteros es de 3 bytes.

15/01/13 La indicación de fecha especifica 15 de enero de 2013.

16:20 La indicación de fecha y hora especifica la hora 4:20 PM.

Interpretación de registros del informe exportado

Esta tabla muestra los números de tabla de los registros T y los números de campode los registros V del informe exportado mostrado en “Aspecto del informeexportado” en la página 125.

Tabla 38. Números de campo y tabla de un informe exportado

Número detabla ocampo

Tipo deregistro Descripción

1001 V Opción DECIMAL de perfil

1002 V La longitud del área de control del registro L + área fija

1010 T Tabla de informe formateada

Para cada columna de datos formateada del informe:

1012 T Para todos los códigos de uso excepto OMIT

1013 T Código de edición mediante el que se formatean datos

1014 T Posición inicial del campo que contiene datos formateados(incluyendo área de sangría)

1015 T Posición inicial del campo que contiene datos formateados(excluyendo área de sangría)

1016 T Posición final del campo que contiene datos formateados

1017 T Número de líneas del informe relativo físico dentro de lalínea de informe lógico en el que aparece el valor de lacolumna formateada

Cuando trabaje con números de tabla y campo en un informe exportado, tenga encuenta los siguientes puntos:v La posición 1 de la línea de informe sigue inmediatamente el área fija del

registro L.v Los registros R para líneas de texto en cada cabecera de informe (PAGE o

BREAK) o pie de página (PAGE, BREAK o FINAL) sólo se escriben hasta (eincluida) la última línea que contiene modificaciones en los valorespredeterminados del formulario.Al menos se escribe un registro R para cada cabecera o pie de página aunque loscampos de una determinada cabecera o pie de página tengan sus valoresoriginales.

Capítulo 9. Exportación e importación de objetos 127

Page 140: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Los registros de continuación se escriben para el objeto de informe cuando, de locontrario, se excedería la longitud de registros máxima.

Referencia relacionada:“Exportación de un informe de estilo transversal” en la página 129Los informes de estilo transversal exportados incluyen campos no encontrados eninformes estándar exportados“Registros de continuación de datos (C)” en la página 112Se utiliza un registro C en un formulario, informe o consulta asistida exportadospara continuar con un valor o conjunto de valores en más de un registro. Sigueinmediatamente al registro que le "continúa". El formato de un registro Ccorresponde al formato del registro original que continúa. QMF sólo utilizaregistros C para continuar los registros L.“Registros de línea de informe (L)” en la página 110Cada línea formateada se describe con un registro L. Hay un registro L para cadalínea del informe.

Exportación de un informe en formato HTMLCuando se exporta un informe en formato HTML, QMF coloca las etiquetas HTMLnecesarias antes y después del cuerpo del informe. A continuación puede ubicar elinforme en un servidor web y visualizarlo en un navegador web compatible conHTML.

Este ejemplo muestra la codificación HTML queQMF coloca alrededor del informe.Cada uno de estos conjuntos de etiquetas consiste en una etiqueta de inicio y unaetiqueta de final. Las etiquetas de final empiezan por una barra inclinada (/) ytodas las etiquetas se incluyen dentro de corchetes.

Para obtener una descripción completa de estas etiquetas, consulte ladocumentación HTML.<HTML><HEAD><TITLE>Informe</TITLE></HEAD><BODY><PRE>

J & H SUPPLY COMPANYAVERAGE SALARY (DEPTS 10, 15, 20)

REPORT 17

PROMEDDTO TAREA PROMEDIO---- ----- ---------10 MGR 20865.86

---------* 20865.86

15 CLERK 12383.53MGR 20659.80SALES 16052.83

---------* 15482.33

20 CLERK 13878.67MGR 18357.50SALES 18171.25

---------

128 Developing DB2 QMF applications

Page 141: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

* 16071.52=========17473.52

COMPANY NAMEREPORT 17

</PRE></BODY></HTML>

Esta tabla explica brevemente esta codificación HTML:

Tabla 39. Etiquetas HTML utilizadas en informes HTML exportados

Conjunto deetiquetas Descripción

<HTML></HTML> Estas etiquetas definen el archivo como un documento HTML.

<HEAD></HEAD> Estas etiquetas marcan los límites de la cabecera del documento.

<TITLE></TITLE> QMF inserta la palabra "Informe" entre estas etiquetas. Elcontenido que está ente estas etiquetas se incluye en el título deldocumento HTML. La colocación del título depende del navegadory de la plataforma. Estas etiquetas se colocan dentro de lacabecera.

<BODY></BODY> Estas etiquetas siguen a la cabecera y contienen el cuerpo deldocumento. La salida de informe se coloca en el cuerpo deldocumento.

<PRE></PRE> El contenido que está entre estas etiquetas se visualiza tal cual. Nose realiza ningún formateo HTML entre las mismas. QMF coloca lasalida de informe entre estas etiquetas en el cuerpo del documentoHTML.

Exportación de un informe de estilo transversalLos informes de estilo transversal exportados incluyen campos no encontrados eninformes estándar exportados

Este ejemplo muestra un informe de estilo transversal exportado.

Capítulo 9. Exportación e importación de objetos 129

Page 142: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

REPORT LINE 1 POS 1 79

J & H SUPPLY COMPANYDEPT AVERAGE SALARIES

REPORT 18 (ACROSS REPORT)

<--------------- TAREA ----------------><- CLERK --> <-- MGR ---> <- SALES --> <- TOTAL -->

AVERAGE AVERAGE AVERAGE AVERAGEDEPT SALARY SALARY SALARY SALARY

------ ---------- ---------- ---------- ----------10 20865,86 20865,8615 12383,35 20659,80 16502,83 15482,3320 13878,68 18357,50 18171,25 16071,5338 12482,25 17506,75 17407,15 15457,11

========== ========== ========== ==========12914.76 19998.21 17372.10 16880.26

COMPANY NAMEREPORT 18PAGE 1

El siguiente formato codificado es el resultado de la exportación del informe deestilo transversal de ejemplo.H QMF 17 R 01 E V W E R 02 03 15/01/13 16:20

V 1001 006 PERIODV 1002 003 016T 1010 002 006 1013 005 1014 006 1015 006 1016 006 1017 006 1012 008R L 000001 000003 000008 000001 GROUPR L2 000003 000005 000014 000001 AVERAGEV 2001 005 CV 2002 003 001V 2003 003 YEST 2010 004 003 2012 006 2013 006 2014 006R 000014 000018 000009R 000029 000031 000023R 000042 000046 000037R 000056 000060 000051L 110 10100000 J & H SUPPLY COMPANYL 110 10100000 DEPT AVERAGE SALARIESL 110 10100000 REPORT 18 (ACROSS REPORT)L 110 10000000L 110 10000000L 170 10000000 <---------------- JOB ----------------->L 170 11000000 <- CLERK --> <-- MGR ---> <- SALES --> <- TOTAL -->L 170 10000000 AVERAGE AVERAGE AVERAGE AVERAGEL 170 10000000 DEPT SALARY SALARY SALARY SALARYL 170 10010000 ------ ---------- ---------- ---------- ----------L 181 11000000 10 20865.86 20865.86L 181 11000000 15 12383.35 20659.80 16502.83 15482.33L 181 11000000 20 13878.68 18357.50 18171.25 16071.53L 181 11000000 38 12482.25 17506.75 17407.15 15457.11L 190 10010000 ========== ========== ========== ==========L 190 11000000 12914.76 19998.21 17372.10 16880.26ddL 120 10000000L 120 10000000L 120 10100000 COMPANY NAMEL 120 10100000 REPORT 18L 120 10100000 PAGE 1E

130 Developing DB2 QMF applications

Page 143: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 38 en la página 127 explica los números de campo que son comunes tanto alos informes estándar como a los informes de estilo transversal. La siguiente tablamuestra los campos adicionales que se pueden ver en los informes de estilotransversal exportados.

Tabla 40. Números de campo de un informe de estilo transversal exportado

Número decampo

Tipo deregistro Descripción

2001 V Código de edición mediante el que se formatea el valortransversal

2002 V Número de línea de datos por grupo transversal

2003 V Indica si existe la columna de resumen transversal

2010 T Tabla de informe transversal

Para cada valor transversal:

2012 T Posición inicial del valor transversal formateado (el valortransversal aparece en las líneas de cabecera de columna)

2013 T Posición final del valor transversal formateado

2014 T Posición inicial del conjunto de columnas de informeasociado con este valor transversal, incluyendo el área desangría precedente

Para columnas agregadas en un informe transversal, los campos 1014, 1015 y 1016describen las posiciones de inicio y final relativas del campo dentro del conjuntode columnas agregadas de un valor transversal. (Consulte el campo 2014 en latabla.)

Exportación de una consulta asistidaUn objeto de consulta asistida exportado contiene la información visualizada en elárea de eco del panel principal de Consulta asistida.

Una consulta de ejemplo (antes de la exportación)

Un conjunto de datos o una cola de datos que contenga una consulta asistidaexportada se puede importar en QMF de dos maneras. El conjunto de datos o lacola de datos se puede importar en el área de almacenamiento temporal de QMF odirectamente en la base de datos. Cuando se importa una consulta asistida, QMFcomprueba si la cola entrante es coherente con los datos de la base de datos. Porejemplo, si la consulta asistida que se ha importado tiene las columnas A, B y C enla tabla XYZ, QMF verifica que la tabla XYZ con las columnas A, B y C exista en labase de datos.

Este ejemplo muestra texto de eco de muestra que aparece en el panel principal dela Consulta asistida antes de su exportación.

Capítulo 9. Exportación e importación de objetos 131

Page 144: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tablas:Q.STAFF(A)Q.ORG(B)Q.STAFF(C)

Combinar Tablas:A.DEPT And B.DEPTNUMBAnd A.ID And C.ID

Columnas:A.IDA.DEPTA.JOBA.SALARYDEPTNUMBC.SALARYC.SALARY+A.COMM

Condiciones de fila:If A.SALARY Is Greater Than 10000And A.DEPT Is Equal To 84 or 96

Clasificación:Descending by C.SALARY+A.COMM

Duplicar Filas:Mantener filas duplicadas

Aspecto de la consulta exportada

Este ejemplo muestra el formato de la consulta asistida exportada.H QMF 17 T 01 E V W E R 01 03 15/01/13 16:20T 1110 003 002 1112 001 1113 050R A Q.STAFFR B Q.ORGR C Q.STAFFT 1150 002 002 1152 020 1153 020R A.DEPT B.DEPTNUMBR A.ID C.IDT 1210 007 002 1212 001 1213 255R C A.IDR C A.DEPTR C A.JOBR C A.SALARYR C B.DEPTNUMBR C C.SALARYR C C.SALARY+A.COMMT 1310 009 003 1312 001 1313 008 1314 255R 1 C A.SALARYR 2 IS GTR 3 10000R 4 IR 1 C A.DEPTR 2 IS EQR 3 84R 3 96R 4 AT 1410 001 002 1412 001 1413 255R D C.SALARY+A.COMMV 1501 001 KE

132 Developing DB2 QMF applications

Page 145: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Interpretación del registro de cabecera en la cola o el conjuntode datos exportados

La siguiente tabla muestra el significado de este registro de cabecera en la consultaasistida exportada que se muestra en “Aspecto de la consulta exportada” en lapágina 132.H QMF 17 T 01 E V W E R 01 03 15/01/13 16:20

Tabla 41. Ejemplo de un registro de cabecera de consulta asistida

Valor deejemplo Descripción

H QMF 17 TEste registro de cabecera de consulta asistida especifica QMF Versión 11.

01 La estructura de la consulta asistida se encuentra a nivel de objeto 1. Si elobjeto de la consulta exportada contiene una especificación de periodo,en su lugar se especifica el nivel de objeto 2.

E El formato está codificado (el formato utilizado para formularios,informes y consultas asistidas exportados).

V La consulta asistida exportada no contiene ni errores ni avisos.

W El archivo contiene toda la consulta asistida.

E El inglés era el idioma nacional utilizado en el momento en que se haexportado el objeto.

R Durante la importación, el objeto en el área de almacenamiento temporalse sustituye.

01 La longitud del área de control es de 1 byte.

03 La longitud de los campos de longitud de enteros es de 3 bytes.

15/01/13La indicación de fecha especifica 15 de enero de 2013.

16:20La indicación de fecha y hora especifica la hora 4:20 PM.

Consulte “Aspecto de la consulta exportada” en la página 132 para obtener unejemplo detallado del formato codificado de la consulta asistida.

Interpretación de registros de la consulta asistida exportada

Siempre se exportan las definiciones de tabla (número de campo 1110). Lascondiciones de unión (número de campo 1510) siempre se exportan si se haseleccionado más de una tabla.

Para importar un archivo de consulta asistida, el archivo debe tener un registro Hseguido del registro T de la tabla codificada. Si no se especifican tablas, se importauna consulta vacía. Las condiciones de unión no son necesarias a menos que sehaya seleccionado más de una tabla.

Capítulo 9. Exportación e importación de objetos 133

|||

Page 146: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 42. Números de campo y tabla para un objeto de consulta asistida exportado

Tipo deregistro

Número dela tabla

Número decampo Descripción de campo

T 1110 - Tabla de definiciones de tabla

El registro T de esta sección de la consultaasistida exportada en “Aspecto de la consultaexportada” en la página 132 identifica estasección como la parte que contiene losnombres de tabla implicados en la consulta:

T 1110 003 002 1112 001 1113 050

'003' hace referencia a 3 tablas, mientras que'002' hace referencia a 2 números de campo(1112 y 1113). Si el objeto de consultaexportada contiene una especificación deperiodo, se utilizará un valor '003' paraindicar 2 números de campo (1112, 1113 y1114) en su lugar.

Cada registro T seguido de registros R y, eneste ejemplo, los registros identifican a lastablas implicadas en la unión de la consultaasistida:

R A Q.STAFFR B Q.ORGR C Q.STAFF

Esta parte del archivo exportado correspondea la siguiente parte de la consulta asistidamostrada en “Una consulta de ejemplo (antesde la exportación)” en la página 131:

Tablas:Q.STAFF(A)Q.ORG(B)Q.STAFF(C)

1112 ID de tabla (los identificadores de tablaválidos son A-Z y #,$,@)

1113 Nombre de tabla (máximo de 280 caracteres)

1114 Especificación de periodo (máximo 560caracteres). El número de campo sólo incluyesi el objeto de la consulta exportada contieneuna especificación de periodo.

134 Developing DB2 QMF applications

|||||||

|||||||

Page 147: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 42. Números de campo y tabla para un objeto de consulta asistidaexportado (continuación)

Tipo deregistro

Número dela tabla

Número decampo Descripción de campo

T 1150 - Tabla de condiciones de unión

El registro T de esta sección de la consultaasistida exportada en “Aspecto de la consultaexportada” en la página 132 identifica estasección como la parte que contiene lascondiciones de unión implicadas en laconsulta. Cada registro T va seguido deregistros R que identifican qué tablas se van aunir:

T 1150 002 002 1152 020 1153 020R A.DEPT B.DEPTNUMBR A.ID C.ID

Esta parte de la consulta exportada deejemplo corresponde a la siguiente parte de laconsulta asistida de ejemplo mostrada en“Una consulta de ejemplo (antes de laexportación)” en la página 131:

Tablas de unión:A.DEPT And B.DEPTNUMBAnd A.ID And C.ID

1152 Nombre 1 de columna: longitud breve (22)longitud ampliada (34)

1153 Nombre 2 de columna: longitud breve (22)longitud ampliada (34)

Capítulo 9. Exportación e importación de objetos 135

Page 148: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 42. Números de campo y tabla para un objeto de consulta asistidaexportado (continuación)

Tipo deregistro

Número dela tabla

Número decampo Descripción de campo

T 1210 - Tabla de columnas

El registro T de esta sección de la consultaasistida exportada en “Aspecto de la consultaexportada” en la página 132 identifica estasección como la parte que contiene losnombres de columna implicados en laconsulta. Cada registro T va seguido deregistros R que identifican nombres decolumna. La sección aparece de la siguientemanera en la consulta exportada:

T 1210 007 002 1212 001 1213 255R C A.IDR C A.DEPTR C A.JOBR C A.SALARYR C B.DEPTNUMBR C C.SALARYR C C.SALARY+A.COMM

Esta sección de la consulta exportadacorresponde a la siguiente sección de laconsulta de ejemplo mostrada en “Unaconsulta de ejemplo (antes de la exportación)”en la página 131:

Columnas:A.IDA.DEPTA.JOBA.SALARYNUMDEPC.SALARYC.SALARY+A.COMM

1212 Tipo de columna:

v C=columna

v E=expresión

v S=función de resumen con expresión

v F=función de resumen con sólo unacolumna

1213 Nombre de columna, expresión o función deresumen: longitud breve (255) longitudampliada (560)

136 Developing DB2 QMF applications

Page 149: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 42. Números de campo y tabla para un objeto de consulta asistidaexportado (continuación)

Tipo deregistro

Número dela tabla

Número decampo Descripción de campo

T 1310 - Condiciones de selección de fila

El registro T de esta sección de la consultaasistida exportada en “Aspecto de la consultaexportada” en la página 132 identifica estasección de la consulta exportada como la parteque contiene las condiciones de consulta.Cada registro T va seguido de registros R quecaracterizan cada condición. Esta secciónaparece de la manera siguiente en la consultaasistida exportada:

T 1310 009 003 1312 001 1313 008 1314 255R 1 C A.SALARYR 2 IS GTR 3 10000R 4 IR 1 C A.DEPTR 2 IS EQR 3 84R 3 96R 4 A

Esta sección de la consulta exportadacorresponde a la siguiente sección de laconsulta mostrada en “Una consulta deejemplo (antes de la exportación)” en lapágina 131:

Condiciones de fila:If A.SALARY es mayor que 10000Y A.DEPT equivale a 84 o 96

1312 Tipo de entrada:

v 1 - izquierda del operador

v 2 - operador

v 3 - derecha del operador

v 4 - conector

1313 Para el tipo de entrada '1', identifica el tipo decolumna:

v C=columna

v E=expresión

v S=función de resumen

v F=función de resumen (sólo nombre decolumna especificado)

Para el tipo de entrada '2', identifica el verbo:

v IS para 'es' (valor predeterminado)

v ISN para 'no es'

Para el tipo de entrada '3' (no se utiliza)

Para el tipo de entrada '4', identifica unconector:

v O para 'ó'

v A para 'y' (valor predeterminado)

Capítulo 9. Exportación e importación de objetos 137

Page 150: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 42. Números de campo y tabla para un objeto de consulta asistidaexportado (continuación)

Tipo deregistro

Número dela tabla

Número decampo Descripción de campo

1314 Para el tipo de entrada '1', este campo es unnombre de columna, expresión o función deresumen: longitud breve (255) longitudampliada (560)

Para el tipo de entrada '2', identifica eloperador:

v EQ para 'igual a'

v LT para 'menor que'

v LE para 'menor que o igual a'

v GT para 'mayor que'

v GE para 'mayor que o igual a'

v BT para 'entre'

v SW para 'empieza por'

v EW para 'finaliza con'

v CT para 'que contenga'

v NL para NULL

Para el tipo de entrada '3', identifica un valor

Para el tipo de entrada '4' (no se utiliza)

T 1410 - Tabla de condiciones de clasificación

El registro T de esta sección de la consultaasistida exportada en “Aspecto de la consultaexportada” en la página 132 identifica a estasección como la parte que contiene lascondiciones de clasificación de la consulta.Cada registro T va seguido de registros R quecaracterizan cada condición de clasificación.Esta sección aparece de la siguiente manera enla consulta asistida exportada:

T 1410 001 002 1412 001 1413 255R D C.SALARY+A.COMM

Esta sección de la consulta exportadacorresponde a la siguiente sección de laconsulta de ejemplo de “Una consulta deejemplo (antes de la exportación)” en lapágina 131:

Clasificar:Descendente por C.SALARY+A.COMM

1412 Dirección de la clasificación:

v A para 'ascendente'

v D para 'descendente'

1413 Columna: longitud corta (255) longitudexpandida (560)

138 Developing DB2 QMF applications

Page 151: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 42. Números de campo y tabla para un objeto de consulta asistidaexportado (continuación)

Tipo deregistro

Número dela tabla

Número decampo Descripción de campo

V 1501 Tratamiento de filas duplicadas:

v K para 'mantener'

v D para 'descartar'

Por ejemplo, la siguiente línea en la consultaasistida exportada de ejemplo de “Aspecto dela consulta exportada” en la página 132muestra que la longitud del registro del valorK es 1 ("001"). La línea también muestra queel usuario que ha compilado la consulta haespecificado que quería conservar filasduplicadas ("K"):

V 1501 001 K

Esta sección de la consulta exportadacorresponde a la siguiente sección de laconsulta de ejemplo mostrada en “Unaconsulta de ejemplo (antes de la exportación)”en la página 131:

Duplicar Filas:Mantener filas duplicadas

El significado de los valores de los campos 1313 y 1314 depende del número desecuencia indicado en el número de campo 1312 del número de tabla 1310.Referencia relacionada:“Registros de cabecera” en la página 103La mayoría de formularios, informes o consultas asistidas exportados tienen unformato variable. No obstante, los registros de cabecera tienen un formato fijo,aunque el conjunto de datos o la cola de datos que contiene los registros pueda serde formato variable.“Registros de fila de tabla (R)” en la página 108Los registros R de formularios, informes o consultas asistidas exportadosproporcionan un conjunto de valores a una única fila en una tabla codificada. Losregistros R contienen una lista de valores organizados en un orden descrito por elregistro T asociado. Un registro R coincide con la descripción de las posiciones ylongitudes de los valores de datos especificados en el registro T.

Cómo asegurarse de que la consulta asistida exportada tieneun formato válido

La importación de un objeto de consulta asistida que la aplicación ha modificadoestá sujeta a determinadas reglas.

Si desea importar un objeto de consulta asistida que la aplicación haya modificado,tenga en cuenta las siguientes condiciones:v Cuando se importa un archivo de consulta asistida, los registros de entrada

deben aparecer en este orden específico después del registro (H) de cabecera:1. Registros T para definiciones de tabla2. Registros R para nombres de tabla3. Registros T para definiciones de columna

Capítulo 9. Exportación e importación de objetos 139

Page 152: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

4. Registros R para columnas5. Los registros de condición de fila (número de tabla 1310) deben aparecer en

el orden de cada condición de acuerdo con el número de secuencia del tipode entrada (número de campo 1312). En otras palabras, los registros debentener el mismo orden según el que aparecen los datos de las filas en el áreade eco Consulta asistida.

Los registros restantes pueden aparecen en cualquier orden.v La tabla Definiciones de tabla (registro T 1110) debe aparecer antes de las otras

tablas o registros V.v El valor del recuento de filas del registro T de Tablas debe ser un * o un entero

del 0 al 15. Un valor de cero en el recuento de filas hace que se ignore todo lode la consulta, lo que significa que se importa una consulta vacía.

v QMF no emite avisos para importaciones de consultas asistidas.v Si se especifica una segunda tabla de Tablas (tabla 1110), QMF emite un error y

el contenido de la tabla se ignora. La consulta asistida no proporciona valorespredeterminados durante la importación.

v Si hay una tabla Clasificación, deberá haber una tabla de Columnas que lapreceda.

v QMF acepta registros duplicados en el archivo de importación. Se utiliza el valormás reciente del registro.

v Todos los nombres de columnas deben haber sido calificados por el identificadorde tabla durante la importación.

v Cuando se exporta una consulta asistida en un conjunto de datos preasignado, lalongitud del registro lógico mínima (LRECL) permitida es de 259 bytes.

v El formato de exportado de una consulta asistida es el mismo,independientemente del idioma nacional utilizado; el formato es independientede idioma. El byte de idioma del registro de cabecera se ignora durante laimportación. Los códigos utilizados al exportar una consulta asistida sedescriben en la lista de números de tabla y de campo para un objeto de consultaasistida exportado.Las funciones y expresiones de resumen no se traducen; por lo tanto, lasfunciones de resumen COUNT, AVG, SUM, MIN, y MAX permanecen sincambios.

Importación de formularios y consultas asistidasTenga en cuenta las reglas para importar un formulario o una consulta asistida.

Al importar un formulario o una consulta asistida:v El archivo puede consistir en registros de longitud fija o variable.v El identificador de registro (H, V, T, R, E, *, L o C) debe estar en la primera

posición de cada registro.v Los primeros dos bytes están reservados para la información de control (el área

de control).v Cada campo de datos (incluyendo números de campo, longitudes y valores)

debe estar precedido y seguido por un delimitador, con la siguiente excepción:no es necesario que el último campo de datos de un registro vaya seguido de undelimitador porque el fin de registro actúa como un delimitador. (Los ejemplosde esta información utilizan el carácter en blanco como delimitador).)

v Si QMF se encuentra con una tabla o un valor de datos duplicado al realizar laimportación, sustituye la tabla o el valor anteriores. No obstante, los duplicados

140 Developing DB2 QMF applications

Page 153: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

no se permiten allí dónde violarían las reglas de un objeto en concreto. Porejemplo, el número de columnas proporcionado para un formulario no se puedecambiar después de haber procesado la primera tabla COLUMNS.

v Los números de tabla, los números de campo y las longitudes numéricas puedencontener ceros iniciales o espacios en blanco iniciales. No obstante, los espaciosen blanco finales (excepto para el delimitador en blanco) no están permitidos; loscampos deben estar alineados a la derecha.

v Cuando se utiliza * en lugar de una longitud o recuento, debe estar alineado a laizquierda y rellenado con espacios en blanco al final.

v Si el valor proporcionado para un campo de entrada de datos es más corto queel campo, se rellena con espacios en blanco al final. Si el valor proporcionado esmás largo que el campo, se trunca.

v Si el registro es más corto que su longitud de formato fijo, se presupone que loscampos que se han dejado sin especificar están en blanco.

Referencia relacionada:“Exportación de un formulario” en la página 113El objeto de formulario contiene toda la información especificada en todos lospaneles de formularios de QMF. Cuando se exporta un formulario, QMF convierteen formato codificado a todos aquellos paneles de formulario cuyos valores sedesvían de los valores predeterminados.“Especificación de tamaño de objetos externalizados” en la página 142Las tablas y objetos externos tienen especificaciones de tamaño de registro y deformato de registro que cambian según el tipo de objeto.

Procedimientos y consultas SQLEl formato del conjunto de datos de TSO o de la cola de datos de CICS querepresenta estos objetos es el más sencillo de todos los formatos. Cada registro delconjunto de datos o de la cola de datos es esencialmente una imagen de una líneatal como se visualiza en la pantalla (un registro de longitud fija de 79 bytes).

Aunque cada línea de estos objetos es de 79 bytes, la longitud de registro lógico(LRECL) de los nuevos conjuntos de datos existentes puede ser de 79 - 32.760bytes. Si exporta un nuevo conjunto de datos, la LRECL es el valor especificadopor la variable global DSQEC_DSLRECL1. Si la LRECL es superior a 79, QMFrellena cada registro de objeto con espacios en blanco durante la exportación.

Aquí encontrará un ejemplo de una consulta SQL simple:

Este ejemplo muestra la consulta en su formato externalizado:SELECT *FROM Q.STAFF

Debido a la simplicidad del formato del registro, la creación o edición de unaconsulta SQL o un procedimiento fuera de QMF es sencilla. Una consulta SQL oprocedimiento consiste en datos de longitud fija en las columnas 1 - 79. Todos losdatos en las columnas 80 - 32760 se ignoran durante la importación. Cuando

Consulta SQL

SELECT *FROM Q.STAFF

Figura 22. Una consulta SQL simple

Capítulo 9. Exportación e importación de objetos 141

|||||

|||

Page 154: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

importe el conjunto de datos o cola de datos resultantes, su consulta oprocedimiento en el área de almacenamiento temporal de QMF estará lista para serejecutada.

Gráficas basadas en formularios y consultas QBEPuede exportar gráficas basadas en formularios y objetos de consulta QBE(Query-by-Example) para procesarlas fuera del entorno de QMF.

Gráficas basadas en formulario exportadas

Una gráfica basada en formulario no se puede guardar como un objeto de QMF enla base de datos ni recuperar de la misma. No puede importar gráficas basadas enformulario enQMF.

Cuando se exporta una gráfica en QMF, convierte los datos del informe en formatode datos gráficos (Graphics Data Format - GDF). GDF, un formato GDDM, es unestándar existente para el intercambio de datos. Puede imprimir los datos de lagráfica exportada utilizando programas de utilidad de GDDM o incluirlos en eldocumentos.

Puede utilizar un objeto de gráfica exportado tal como lo haría con cualquierconjunto de datos con formato GDF. Por ejemplo, mediante DocumentComposition Facility (DCF), una aplicación puede combinar un informe de QMF(que utilice un informe impreso o exportado) con una gráfica de QMF (que utiliceuna gráfica exportada) y enviar la información formateada a la impresora.

Consultas QBE exportadas

Los objetos de consulta QBE se exportan utilizando un formato interno de QMF.Este formato no se puede modificar en modo alguno.Información relacionada:

El Centro de publicaciones de IBMBúsqueda de aplicaciones de programación de la aplicación GDDM.

Especificación de tamaño de objetos externalizadosLas tablas y objetos externos tienen especificaciones de tamaño de registro y deformato de registro que cambian según el tipo de objeto.

La siguiente tabla contiene especificaciones sobre los archivos de importación yexportación deTSO y CICS. Para CICS, no se fuerzan los tamaños de registro. Porejemplo, puede importar una consulta SQL de una cola de almacenamientotemporal con un tamaño de registro de 32 KB y QMF la truncará a los 79 bytes.

El formato del registro no es un factor para el almacenamiento temporal ni lascolas de datos transitoria de CICS. Una cola de almacenamiento temporal retienelos registros sin tener en cuenta su formato. Se define una cola de datos transitoriaen una tabla de control de destino (DCT) e ignora el formato del registro.

Debe especificar un nombre para el conjunto de datos o la cola de datos de CICSen el mandato EXPORT o IMPORT. Los nombres de cola no tienen ningún sufijo niprefijo predeterminados. Los nombres de cola de almacenamiento temporal deCICS tienen 8 bytes; los nombres de cola de datos transitoria tienen 4 bytes.

142 Developing DB2 QMF applications

Page 155: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Se utilizan las siguientes abreviaturas para formatos de registro en la tabla:v FB - formato de bloque fijov VB - formato de bloque variablev VBS - formato distribuido de bloque variable

Tabla 43. Atributos del archivo y del conjunto de datos

Objeto Tamaño de registro Formato de registro

Datos o tabla(formatoQMF)

Tamaño máximo: 7000 bytes Longitud fija (FB)

Datos o tabla(formato IXF)

Tamaño máximo: 32756

La LRECL mínima de un formularioexportado que incluya columnasdefinidas es de 161 bytes.

La LRECL mínima que acepta QMFpara un conjunto de datos o cola dedatos de CICS IXF durante laimportación es de 49 bytes.

El tamaño del registro normalmente esla longitud de una fila de datos que seestá exportando (incluyendo espaciopara indicadores nulos y delimitadoresDBCS) más la longitud del campo derecuento de registros de tipo D IXF (5bytes).

Longitud variable (VB)

Datos o tabla(formatoXML)

Tamaño máximo: 2 GB Longitud variable (VBS)

Datos o tabla(formatoCSV)

La LRECL máxima para exportarconjuntos de datos nuevos se calcula enbase a si se especifica YES o NO para laopción HEADER del mandato EXPORT.

v Si se especifica HEADER=YES, seutiliza la siguiente fórmula:

max(Column_Names_Total_Length,Column_Data_Value_Total_Length)+ (número de columnas * 3 - 1) + 4

v Si se especifica HEADER=NO, seutiliza la siguiente fórmula:

(longitud de valores de datos de columna)+ (número de columnas - 1)+ (número de columnas * 2) + 4

Para realizar exportaciones a conjuntosde datos existentes, la LRECL delconjunto de datos existente es laLRECL máxima que se puede exportar.

Longitud variable (VB)

Consultasolicitud

Máximo: 7290 bytes

Mínimo: 266 bytes en EXPORT; 41bytes en IMPORT

Longitud variable (VB) enEXPORT

La longitud fija (FB) o la longitudvariable (VB) en IMPORT

Capítulo 9. Exportación e importación de objetos 143

|||||||

|||

||||

||

|||

||

|||

||||

|

Page 156: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 43. Atributos del archivo y del conjunto de datos (continuación)

Objeto Tamaño de registro Formato de registro

Consulta SQL Debe ser 79 - 32.760 bytes en EXPORTpara conjuntos de datos nuevos yexistentes; puede tener cualquiertamaño en IMPORT, pero se trunca alos 79 bytes

Longitud fija (FB) o longitudvariable (VB) en EXPORT para losconjuntos de datos existentes;longitud fija (FB) en EXPORT ennuevos conjuntos de datos

La longitud fija (FB) o la longitudvariable (VB) en IMPORT

ConsultaQBE

Debe ser de 1024 bytes

Una consulta QBE vacía es de 828bytes.

Longitud variable (VB)

Formato Máximo: 7290 bytes

Mínimo: 161 bytes en EXPORT; 23bytes en IMPORT

Longitud fija (FB) en EXPORT

La longitud fija (FB) o la longitudvariable (VB) en IMPORT

Proc Debe ser 79 - 32.760 bytes en EXPORTpara conjuntos de datos nuevos yexistentes; puede tener cualquiertamaño en IMPORT, pero se trunca alos 79 bytes

Longitud fija (FB) o longitudvariable (VB) en EXPORT para losconjuntos de datos existentes;longitud fija (FB) en EXPORT ennuevos conjuntos de datos

La longitud fija (FB) o la longitudvariable (VB) en IMPORT

Informe Máximo: 7290 bytes

Mínimo: 65 bytes

Longitud variable (VB)

InformeHTML

Máximo: 32000 bytes Longitud variable (VB)

Información relacionada:

Consulta de DB2 QMFBúsqueda de información acerca de nombres de conjuntos de datos o nombres decolas de datos.

Consideraciones de almacenamientoCuando importe y exporte objetos en colas de datos de CICS y conjuntos de datosde TSO, tenga en cuenta cómo QMF maneja el almacenamiento.

Colas de datos de CICSPara los objetos exportados en una cola de datos de CICS, debe saber cómo QMFmaneja las colas.

Al exportar un objeto en una cola de datos de CICS, tenga en cuenta las siguientescondiciones:v En CICS, los mandatos IMPORT y EXPORT requieren que se especifique la

opción QUEUETYPE. No existe ningún valor predeterminado.v Al importar un objeto de una cola de datos transitorios (TD) en CICS, debe

especificar el tipo de objeto correcto. La cola se vacía después de que QMFrecupera su contenido. Por ejemplo, si especifica “Formulario” cuando el tipo deobjeto en la cola de datos transitoria es un procedimiento, QMF emitirá un

144 Developing DB2 QMF applications

|||||

|||||

|||||

|||||

Page 157: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

mensaje de error. Sin embargo, no puede emitir satisfactoriamente el mandatoIMPORT de nuevo (ni con el tipo de objeto correcto) utilizando la misma cola,pues dicha cola ahora está vacía.

v En CICS, los datos transitorios o la cola de almacenamiento temporal (TS) debencontener un único objeto de QMF completado antes de emitir el mandatoIMPORT.

v Si exporta a una cola de datos transitoria, la cola debe estar abierta, habilitada yvacía antes de emitir el mandato EXPORT.

QMF maneja colas de datos transitorias de CICS de forma diferente que las colasde almacenamiento temporal.v Colas de datos temporales

QMF importa toda la cola de datos transitoria al completo antes de mostrar elobjeto en la pantalla. Ello implica que el contenido de toda la cola debe ajustarsea su área de vertido o de almacenamiento. Puede utilizar el parámetroDSQSPILL para especificar el uso del almacenamiento de vertido. Es posible quese produzca un retardo antes de que se visualice el objeto si dicho objeto esgrande y está utilizando un archivo para los datos de vertido.Una cola de datos transitorios entre particiones de CICS puede contener filas dedatos de hasta 32 KB. Una cola de datos transitorios fuera de partición puede sertan grande como resulte necesario para mantener el objeto.

v Colas de almacenamiento temporalDe forma predeterminada, QMF lee aproximadamente 100 filas dealmacenamiento temporal antes de mostrarlas al usuario. Una cola dealmacenamiento temporal puede contener filas de datos de hasta 32 KB.

QMF utiliza el parámetro SUSPEND en los mandatos IMPORT y EXPORT parapermitir que CICS se regule cuando se ejecuta el mandato.

El parámetro SUSPEND en los mandatos IMPORT y EXPORT determina la acciónque debe emprenderse si una cola está ocupada. Cuando el parámetro SUSPENDse establece en YES, QMF emite un CICS ENQ (poner en cola) para el nombre dela cola de datos de CICS. Este valor indica a CICS que espere a que la cola estédisponible antes de escribir el objeto de QMF en la cola. La espera garantiza que latransacción de QMF no interfiera con ningún otro trabajo que la cola estémanejando.

Cuando el parámetro SUSPEND está establecido en NO, el mandato EXPORT secancela y el sistema devuelve un mensaje. El valor predeterminado de SUSPENDes NO.Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBúsqueda de información acerca de cómo planificar y especificar el uso dealmacenamiento de vertido.

Conjuntos de datos de TSOPara aquellos objetos exportados a un conjunto de datos deTSO, asegúrese deconfigurar el sistema de gestión de almacenamiento de forma correcta.

Si utiliza dispositivos DASD estándar, asegúrese de que el software de gestión dealmacenamiento esté configurado para gestionar la asignación dinámica de losconjuntos de datos ampliados. Al configurar estos conjuntos de datos, especifiquelas clases de almacenamiento por omisión. Cuando el sistema de gestión de

Capítulo 9. Exportación e importación de objetos 145

Page 158: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

almacenamiento se configura de esta manera y se exporta un objeto, QMF asignadinámicamente un conjunto de datos. QMF utiliza el nombre especificado en elmandato EXPORT si no existe el conjunto de datos. Si está exportando datos enformato XML, puede recibir errores de asignación dinámica si no ha configuradocorrectamente los conjuntos de datos. Para obtener más información sobre cómoconfigurar la asignación dinámica de conjuntos de datos ampliados, consulte lainformación que se suministra con el software de la gestión de almacenamiento.

Si no utiliza dispositivos DASD estándar, debe asignar previamente los conjuntosde datos antes de utilizar el mandato EXPORTAR. Puede utilizar variables globalespara especificar el tipo y tamaño de los nuevos conjuntos de datos que contendránlos objetos exportados:v Utilice la variable global DSQEC_PO para especificar el tipo de conjunto de

datos particionado que debe crearse al exportar un objeto a un miembro de unnuevo conjunto de datos. El tipo puede ser el tipo predeterminado para el sitio,un conjunto de datos particionados o un conjunto de datos particionadosampliado.

v Utilice la variable global DSQEC_DSALLOC_DIR para especificar el número debloques de directorios al exportar un miembro de un nuevo conjunto de datosPDS. El valor predeterminado es 20.

v Utilice la variable global DSQEC_DSALLOC_PRI para especificar la asignaciónde espacio primario en pistas. El valor predeterminado es de 15 pistas.

v Utilice la variable global DSQEC_DSALLOC_SEC para especificar la asignaciónde espacio secundario en pistas. El valor predeterminado es de 105 pistas.

Referencia relacionada:“Variables globales que controlan cómo se ejecutan los mandatos y losprocedimientos” en la página 230Las variables globales DSQEC controlan cómo se ejecutan los mandatos yprocedimientos. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.

146 Developing DB2 QMF applications

Page 159: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 10. Depuración de las aplicaciones de QMF

Además del manejo de errores, QMF proporciona recursos de depuración para lasaplicaciones de interfaz invocable.

Puede utilizar el recurso de rastreo de REXX mediante la sentencia REXX TRACE.Conceptos relacionados:Capítulo 6, “Escritura de aplicaciones QMF que utilizan servicios ISPF”, en lapágina 33Puede eludir los paneles de QMF escribiendo aplicaciones que tengan sus propiasinterfaces de usuario. Puede utilizar la interfaz invocable o la interfaz de mandatospara escribir aplicaciones que utilizan ISPF.Información relacionada:

El Centro de publicaciones de IBMBúsqueda de información de referencia de REXX para el sistema.

Depuración de las aplicaciones de interfaz invocableQMF proporciona dos opciones de rastreo, L y A, y varios niveles de detalle derastreo para depurar las aplicaciones.Información relacionada:

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de cómo utilizar opciones de rastreo que no seanL ni A para resolver problemas.

La opción L de rastreoLa opción L escribe mensajes y mandatos en un conjunto de datos de TSO o unaescribir de CICS externos.

Hay dos opciones L entre las que se puede elegir:

L1 Cada mensaje de QMF se escribe en la salida de datos de rastreo de QMF.

L2 Cada mensaje y mandato de QMF se escribe en la salida de datos derastreo de QMF.

Puede establecer la opción L de una de las dos siguientes formas:v Emita el mandato DISPLAY PROFILE y cuando se visualice el PROFILE, cambie

la opción TRACE por L1 o L2.v Emita el mandato:

SET PROFILE (TRACE=x

En esta sentencia, x es L1 o L2.

© Copyright IBM Corp. 1982, 2013 147

Page 160: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Conceptos relacionados:“Asignación de la salida de datos de rastreo de QMF” en la página 149Debe asignar la salida de datos de rastreo de QMF antes de iniciar QMF si va autilizarse el rastreo.Información relacionada:

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de cómo asignar almacenamiento a datos derastreo.

La opción A del rastreoPuede utilizar la opción A para especificar un nivel de rastreo par servicios desoporte de aplicación de QMF.

La opción A puede ser A0, A1 o A2. A0 es el valor predeterminado y noproporciona ningún rastreo A en absoluto. A1 y A2 proporcionan resultados cadavez más detallados. Este patrón también se utiliza para otras opciones de rastreode QMF.

Especifique la opción A de la misma manera que especifica la opción L: medianteun mandato SET PROFILE de QMF o introduciéndola en la pantalla después deemitir el mandato DISPLAY PROFILE. Por ejemplo, puede introducir la siguientesentencia inmediatamente antes de llamar a la aplicación que está depurando:SET PROFILE (TRACE=L2A1)

Cuando inicie la aplicación, tanto el rastreo L2 como el rastreo A1 entran en vigor.

Para determinar el valor de la opción A actual, mire la variableDSQAO_APPL_TRACE. Su valor es 0, 1 o 2 para las opciones A0, A1 o A2. Puedeutilizar el valor DSQAO_APPL_TRACE para seleccionar el rastreo que desea en laaplicación, como en la aplicación REXX que se muestra a continuación:

Información relacionada:

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de la asignación de datos de rastreo y acerca delos parámetros de programa DSQSDBQT y DSQSDBQN.

Desactivación del rastreoPara desactivar el rastreo, utilice el mandato SET PROFILE.

/* Programa REXX para establecer rastreo */call dsqcix "GET GLOBAL(A_TRACE=DSQAO_APPL_TRACE"if a_trace > 0 then

do/* trace code for both A1 and A2 */

...if a_trace = 2 then

do/* trace code for just A2 */

...end

end

Figura 23. Estructura de un programa de REXX de ejemplo que se puede utilizar paraestablecer el rastreo de los servicios de soporte de la aplicación

148 Developing DB2 QMF applications

Page 161: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Si necesita desactivar el rastreo por cualquier motivo, emita el siguiente mandato:SET PROFILE (TRACE=NONE

Este mandato deja de realizar el rastreo durante el resto de la sesión de QMF, perono afecta al perfil de QMF permanente.

Asignación de la salida de datos de rastreo de QMFDebe asignar la salida de datos de rastreo de QMF antes de iniciar QMF si va autilizarse el rastreo.

Es posible que desee reasignar el conjunto de datos o la cola de datos si laasignación original no cumple con sus requisitos.

Para obtener ejemplos acerca de cómo asignar la salida de datos de rastreo deQMF a TSO, consulte la especificación del lenguaje de programación del lenguajeque va a utilizar.

Los mandatos de los ejemplos asignan un conjunto de datos de rastreo secuencial ouna cola de datos que se puede examinar una vez ha finalizado la sesión de QMF.La salida consiste en registros de 80 caracteres de longitud fija.

Para CICS, puede utilizar los parámetros de programa DSQSDBQT y DSQSDBQNpara especificar en lugar en el queQMF debe colocar los datos de rastreo. Procedacon cuidado al utilizar el almacenamiento temporal de CICS, pues QMF puedegenerar una gran cantidad de datos de rastreo. Puesto que se descartarán los datosde rastreo que excedan el tamaño de la cola, sólo utilice el almacenamientotemporal de CICS para datos de rastreo de mensajes o aplicaciones pequeñas.Referencia relacionada:Capítulo 11, “Especificaciones del lenguaje de programación para utilizar la interfazinvocable”, en la página 151La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.“Palabras claves del mandato START” en la página 56Puede especificar palabras clave en el mandato START.Información relacionada:

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de cómo asignar almacenamiento a datos derastreo

El mandato MESSAGE de QMF para el rastreoPuede utilizar el mandato MESSAGE de QMF para realizar más actividades quevisualizar un mensaje cuando finalice una aplicación. También puede utilizarlopara registrar mensajes en la salida de datos de rastreo de QMF.

Para registrar mensajes, ejecute la aplicación con la opción de rastreo L establecidaen L1 o L2. Se registra cada mensaje procesado mediante el mandato MESSAGE,junto con otros mensajes de QMF en la salida de datos de rastreo de QMF. Si laopción de rastreo L está establecida en L2, los mandatos también se registran.

Si coloca mandatos MESSAGE en puntos estratégicos en su programa, puederegistrar información útil en el archivo de rastreo de QMF. Puede examinar lainformación en un dispositivo de visualización o en la salida impresa.

Capítulo 10. Depuración de las aplicaciones de QMF 149

Page 162: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Las siguientes líneas muestran un ejemplo de cómo activar el rastreo y emitirmensajes significativos que se van a visualizar en la salida de rastreo:call dsqcix "SET PROFILE (TRACE=L2"...call dsqcix "MESSAGE (TEXT=’QUERYA COMPLETED SUCCESSFULLY’"...call dsqcix "MESSAGE (TEXT=’EXECB ENTERED WITH VALUE OF 7’"...

En este ejemplo, los registros que contienen los mensajes “QUERYA COMPLETEDSUCCESSFULLY” y “EXECB ENTERED WITH A VALUE OF 7” se escriben en la salida dedatos de rastreo de QMF.

Puesto que es posible que los mensajes de QMF cambien de un release al siguiente,no utilice la salida de datos de rastreo de QMF como entrada en una aplicación.Conceptos relacionados:“Asignación de la salida de datos de rastreo de QMF” en la página 149Debe asignar la salida de datos de rastreo de QMF antes de iniciar QMF si va autilizarse el rastreo.“La opción L de rastreo” en la página 147La opción L escribe mensajes y mandatos en un conjunto de datos de TSO o unaescribir de CICS externos.Información relacionada:

Instalación y gestión de QMF para TSO y CICSBúsqueda de información acerca de la salida de datos de rastreo de QMF

Errores en START u otros mandatos de QMFEn función de su nivel, es posible que DSQCOMM contenga un texto de mensaje.Si el mandato START (o cualquier otro mandato deQMF) falla, puede utilizar estetexto de mensaje para resolver problemas.Información relacionada:

DB2 QMF Messages and CodesBúsqueda de información sobre mensajes de error de QMF.

150 Developing DB2 QMF applications

Page 163: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Capítulo 11. Especificaciones del lenguaje de programaciónpara utilizar la interfaz invocable

La interfaz de programación de aplicaciones de QMF está disponible para varioslenguajes de programación.

IBM proporciona información sobre cómo ensamblar (o compilar) y editar losenlaces de los programas y cómo ejecutarlos utilizando la interfaz invocable. IBMno proporciona los exec, JCL ni las CLIST de REXX en los ejemplos, pero puedecopiarlos y modificarlos para que se ajusten a sus necesidades.

Interfaz de lenguaje de AssemblerPuede utilizar el lenguaje Assembler con la interfaz invocable en QMF.

Correlación de área de comunicaciones de interfaz deAssembler (DSQCOMMA)

DSQCOMMA proporciona una correlación de DSQCOMM del lenguaje Assembler.Se facilita con el producto.

Esta tabla muestra los valores de DSQCOMMA.

Tabla 44. Contenido del área de comunicaciones de la interfaz de DSQCOMMA

Nombre de la estructura Tipo de datos Descripción

DSQ_RETURN_CODE DS F Indica el estado de un mandato de QMFdespués de su ejecución

Sus valores son:

DSQ_SUCCESSEjecución satisfactoria de lasolicitud

DSQ_WARNINGTerminación normal con avisos

DSQ_FAILUREEl mandato no se ha ejecutadocorrectamente

DSQ_SEVEREError grave; sesión de QMFterminada

DSQ_INSTANCE_ID DS F Identificador establecido por QMF durantela ejecución del mandato START

DSQ_COMM_LEVEL DS CL12 Identifica el nivel de DSQCOMM

En la aplicación, incluya instrucciones queinicialicen esta variable con el valor deDSQ_CURRENT_COMM_LEVEL antes deemitir el mandato START de QMF

© Copyright IBM Corp. 1982, 2013 151

Page 164: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 44. Contenido del área de comunicaciones de la interfaz deDSQCOMMA (continuación)

Nombre de la estructura Tipo de datos Descripción

DSQ_PRODUCT DS CL2 Identifica el producto de consulta de IBMque se está utilizando

Las variables que empiezan por DSQ_QMFespecifican versiones de QMF para TSO yQMF para CICS.

DSQ_PRODUCT_RELEASE DS CL2 Nivel de release de QMF que se estáutilizando

La variable DSQ_QMF_V10R1 especificaQMF Versión 11 Release 1.

DSQ_RESERVE1 DS XL28 Reservado para uso en el futuro

DSQ_MESSAGE_ID DS CL8 ID de mensaje de finalización

DSQ_Q_MESSAGE_ID DS CL8 ID de mensaje de consulta

DSQ_START_PARM_ERROR

DS CL8 Nombre del parámetro en error cuando elmandato START ha fallado debido a unerror de parámetro

DSQ_CANCEL_IND DS C Contiene uno o dos valores, en función desi el usuario ha cancelado la sesión de QMFmientras se estaba ejecutando un mandatode QMF:

v DSQ_CANCEL_YES

v DSQ_CANCEL_NO

DSQ_RESERVE2 DS XL23 Reservado para uso en el futuro

DSQ_RESERVE3 DS XL156 Reservado para uso en el futuro

DSQ_MESSAGE_TEXT DS CL128 Texto de mensaje de finalización

DSQ_Q_MESSAGE_TEXT DS CL128 Texto de mensaje de consulta

Llamadas a función del lenguaje AssemblerQMF proporciona una llamada a función, DSQCIA, para programas con lenguajede Assembler. La llamada a función tiene dos formatos: sintaxis regular y sintaxisampliada.

DSQCIA, sintaxis regular

Esta llamada es para los mandatos de QMF que no necesitan acceder a variablesdel programa de aplicación. Utilice esta llamada para la mayoría de mandatos deQMF.

CALL DSQCIA,(DSQCOMM,CMDLTH,CMDSTR),VL

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz

CMDLTHLa longitud de la serie de mandato (CMDSTR); un parámetro FULLWORD

152 Developing DB2 QMF applications

Page 165: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

CMDSTREl mandato QMF emitido en la llamada a función; una serie de caracteres enmayúsculas de la longitud especificada por CMDLTH

VL es la sentencia VARIABLE LIST de Assembler.

DSQCIA, sintaxis ampliada

Este formato de sintaxis ampliada de la llamada a función DSQCIA es para elmandato de QMF que necesita acceder a variables del programa de aplicación:START, TRACE y los formatos ampliados de GET GLOBAL y SET GLOBAL.

CALL DSQCIA,(DSQCOMM,CMDLTH,CMDSTR,PNUM,KLTH,KWORD,VLTH,VALUE,VTYPE),VL

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz.

CMDLTHLa longitud de la serie de mandato (CMDSTR); un parámetro FULLWORD.

CMDSTREl mandato QMF que debe ejecutarse; una serie de caracteres en mayúsculasde la longitud especificada por CMDLTH.

PNUMEl número de las áreas de rastreo o de las palabras clave del mandato; unparámetro FULLWORD.

KLTHLa longitud de cada palabra clave o título de rastreo especificados; unparámetro FULLWORD o matriz de parámetros FULLWORD.

KWORDPalabra clave, palabras clave o dirección de títulos de rastreo de QMF; uncarácter, una matriz de direcciones para rastrear los títulos cuyas longitudesvienen especificadas por KLTH.

VLTHLa longitud de cada valor que está asociado con la palabra clave o título derastreo; un parámetro FULLWORD o matriz de parámetros FULLWORD.

VALUEEl valor que está asociado con cada palabra clave o la dirección de un valorque está asociado con un título de rastreo.

Su tipo se especifica en el parámetro VTYPE y puede ser un carácter, matriz decaracteres, parámetro FULLWORD o matriz de parámetros FULLWORD. Paralos datos de rastreo, VTYPE debe ser FINT.

VTYPEEl tipo de datos del contenido del parámetro VALUE.

Este parámetro tiene uno de dos valores, que se proporcionan en el área decomunicaciones de la interfaz, DSQCOMMA:v DSQ_VARIABLE_CHAR para valores de carácter

Si VTYPE es DSQ_VARIABLE_CHAR, a continuación, VALUE no se valida.v DSQ_VARIABLE_FINT para valores enteros

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 153

|||

||

||

|||

||

||

|||

Page 166: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Si VTYPE es DSQ_VARIABLE_FINT, a continuación, VALUE se valida yVALUE debe ser un entero.

Todos los valores que se especifican en el campo VALUE deben tener el tipo dedatos que se especifica en VTYPE.

VL es la sentencia VARIABLE LIST de Assembler.Información relacionada:

El Centro de publicaciones de IBMBúsqueda de información sobre la sentencia VARIABLE LIST para su versión deAssembler.

Ejemplo de programación de AssemblerIBM proporciona un programa de Assembler de ejemplo para CICS y TSO. Esteprograma de ejemplo es un miembro de la biblioteca QMF1110.SDSQSAPn (donden es un identificador de idioma nacional).

Programa de ejemplo de Assembler para CICSIBM proporciona un programa de ejemplo de Assembler para CICS denominadoDSQABFAC

Este programa de ejemplo de Assembler para CICS se encuentra en labibliotecaQMF1110.SDSQSAPn (donde n es un identificador de idioma nacional).

Este programa de ejemplo para la interfaz invocable de Assembler realiza lassiguientes funciones:v Inician QMFv Establecen tres variables globalesv Ejecutan una consulta denominada Q1v Imprimen el informe de resultados utilizando el formulario F1v Finalizan la sesión de QMF

QMF no proporciona el formulario Q1 ni la consulta Q1, pero el programa deejemplo utiliza estos objetos.

TITLE ’Interfaz invocable de consulta HLASM de ejemplo’************************************************************************ ** Programa de ejemplo: DSQABFAC ** Versión de Assembler de la interfaz invocable de QMF para CICS ** ************************************************************************DSQABFAC DFHEIENT CODEREG=(12),DATAREG=(13),EIBREG=(11)DSQABFAC AMODE 31DSQABFAC RMODE ANY

SPACE 1************************************************************************ Iniciar una sesión de interfaz de consulta ************************************************************************

LA R4,CICOMM ESTABLISH ACCESS TO DSQCOMMUSING DSQCOMM,R4SPACE 1MVC DSQ_COMM_LEVEL,DSQ_CURRENT_COMM_LEVELST R4,QMFP1 Dirección de DSQCOMMALA R1,STARTQIL Dirección de longitud de mandato STARTST R1,QMFP2LA R1,STARTQI Dirección de mandato STARTST R1,QMFP3LA R1,1 Un parámetro de mandato START

154 Developing DB2 QMF applications

Page 167: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

ST R1,NUMPARMSLA R1,NUMPARMS Dirección de número de parámetrosST R1,QMFP4LA R1,STARTKYL Dirección de longitudes de palabra claveST R1,QMFP5LA R1,STARTKY Dirección de palabras claveST R1,QMFP6LA R1,STARTVL Dirección de longitudes de valorST R1,QMFP7LA R1,STARTV Dirección de valoresST R1,QMFP8LA R1,DSQ_VARIABLE_CHAR Dirección de tipo de datos de valorST R1,QMFP9OI QMFP9,X’80’ Establecer final de lista de parámetrosLA R1,QMFPLIST Dirección de lista de parámetrosCALL DSQCIASPACE 1

************************************************************************ Establecer valores numéricos en consulta utilizando el mandato SET ************************************************************************

SPACE 1LA R1,20 Establecer valores para el mandato SET GLOBALST R1,VVAL1LA R1,40ST R1,VVAL2LA R1,84ST R1,VVAL3LA R1,SETGL Dirección de longitud de mandato SET GLOBALST R1,QMFP2LA R1,SETG Dirección de mandato SET GLOBALST R1,QMFP3LA R1,3 Tres variables SET GLOBALST R1,NUMPARMSLA R1,NUMPARMS Dirección de número de parámetrosST R1,QMFP4LA R1,VNAME1L Dirección de longitudes de nombre de variableST R1,QMFP5LA R1,VNAME1 Dirección de nombres de variableST R1,QMFP6LA R1,VVAL1L Dirección de longitudes de valorST R1,QMFP7LA R1,VVAL1 Dirección de valoresST R1,QMFP8LA R1,DSQ_VARIABLE_FINT Dirección del tipo de datos de valorST R1,QMFP9OI QMFP9,X’80’ Establecer final de lista de parámetrosLA R1,QMFPLIST Dirección de lista de parámetrosCALL DSQCIASPACE 1

************************************************************************ Ejecutar una consulta ************************************************************************

LA R1,QUERYL Dirección de longitud de mandato RUN QUERYST R1,QMFP2LA R1,QUERY Dirección de mandato RUN QUERYST R1,QMFP3OI QMFP3,X’80’ Establecer final de lista de parámetrosLA R1,QMFPLIST Dirección de lista de parámetrosCALL DSQCIASPACE 1

************************************************************************ Imprimir el resultado de la consulta ************************************************************************

LA R1,REPTL Dirección de longitud de mandato PRINT ReportST R1,QMFP2LA R1,REPT Dirección de mandato PRINT ReportST R1,QMFP3

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 155

Page 168: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

OI QMFP3,X’80’ Establecer final de lista de parámetrosLA R1,QMFPLIST Dirección de lista de parámetrosCALL DSQCIASPACE 1

************************************************************************ Finalizar la sesión de interfaz de consulta ************************************************************************

LA R1,ENDQIL Dirección de longitud del mandato EXITST R1,QMFP2LA R1,ENDQI Dirección de mandato EXITST R1,QMFP3OI QMFP3,X’80’ Establecer final de lista de parámetrosLA R1,QMFPLIST Dirección de lista de parámetrosCALL DSQCIASPACE 1

************************************************************************ Teclado liberado ************************************************************************

EXEC CICS SEND CONTROL FREEKBSPACE 1

************************************************************************ Volver ************************************************************************

SPACE 1XR R15,R15 ZERO RETURN CODEDFHEIRET RCREG=15

************************************************************************ Áreas de datos ************************************************************************

SPACE 1* Mandatos de interfaz de consulta

SPACE 1STARTQI DC C’START’ START FUNCTIONSETG DC C’SET GLOBAL’ SET GLOBAL FUNCTIONQUERY DC C’RUN QUERY Q1’ RUN QUERYREPT DC C’PRINT REPORT (FORM=F1,QUEUEN=DSQP,QUEUET=TS)’ENDQI DC C’EXIT’ END INTERFACE

SPACE 1DS 0F

STARTQIL DC AL4(L’STARTQI) LENGTH OF START FUNCTIONSETGL DC AL4(L’SETG) LENGTH OF SET GLOBAL FUNCTIONQUERYL DC AL4(L’QUERY) LENGTH OF RUN QUERY COMMANDREPTL DC AL4(L’REPT) LENGTH OF PRINT REPORT COMMANDENDQIL DC AL4(L’ENDQI) LENGTH OF END INTERFACE COMMAND

SPACE 1* Palabra clave de mandato START

SPACE 1STARTKY DC C’DSQSMODE’STARTV DC C’INTERACTIVE’

DS 0FSTARTKYL DC AL4(L’STARTKY)STARTVL DC AL4(L’STARTV)

SPACE 1* Nombres de variable de mandato SET GLOBAL

SPACE 1VNAME1 DC C’MYVAR01’VNAME2 DC C’SHORT’VNAME3 DC C’MYVAR03’

DS 0FVNAME1L DC AL4(L’VNAME1)VNAME2L DC AL4(L’VNAME2)VNAME3L DC AL4(L’VNAME3)

SPACE 1* Valores de mandato SET GLOBAL

SPACE 1VVAL1L DC AL4(L’VVAL1)VVAL2L DC AL4(L’VVAL2)

156 Developing DB2 QMF applications

Page 169: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

VVAL3L DC AL4(L’VVAL3)* Definición de comunicaciones de interfaz invocable

DSQCOMMA* Equiparación de los registros 0-15R0 EQU 00R1 EQU 01R2 EQU 02R3 EQU 03R4 EQU 04R5 EQU 05R6 EQU 06R7 EQU 07R8 EQU 08R9 EQU 09R10 EQU 10R11 EQU 11R12 EQU 12R13 EQU 13R14 EQU 14R15 EQU 15* Variables locales ubicadas en almacenamiento de trabajo de CICSDFHEISTG DSECT

ORG DFHEIUSRNUMPARMS DS F NUMBER OF KEYWORDS* Valores de mandato QMF SET GLOBALVVAL1 DS FVVAL2 DS FVVAL3 DS F* Lista de parámetros de interfaz invocable de QMFQMFPLIST DS 0DQMFP1 DS FQMFP2 DS FQMFP3 DS FQMFP4 DS FQMFP5 DS FQMFP6 DS FQMFP7 DS FQMFP8 DS FQMFP9 DS F* Área de comunicaciones de interfaz invocableCICOMM DS CL(DSQCOMM_LEN)

CSECTSPACE 1END DSQABFAC

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

Programa de ejemplo de Assembler para TSOIBM proporciona un programa de ejemplo de Assembler paraTSO denominadoDSQABFA.

Este programa de ejemplo de Assembler para TSO se encuentra en labibliotecaQMF1110.SDSQSAPn (donde n es un identificador de idioma nacional).

Este programa de ejemplo para la interfaz invocable de Assembler realiza lassiguientes funciones:v Inician QMFv Establecen tres variables globalesv Ejecutan una consulta denominada Q1

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 157

Page 170: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Imprimen el informe de resultados utilizando el formulario F1v Finalizan la sesión de QMF

QMF no proporciona el formulario Q1 ni la consulta Q1, pero el programa deejemplo utiliza estos objetos.DSQABFA TITLE ’SAMPLE QMF CALLABLE INTERFACE’DSQABFA CSECTDSQABFA AMODE 31DSQABFA RMODE ANY************************************************************************ ** Programa de ejemplo: DSQABFA ** Versión de Assembler de la interfaz invocable de QMF ** ************************************************************************

SPACE 1STM R14,R12,12(R13) SAVE ENTRY REGISTERSBALR R12,0 INITIALIZE BASE REGISTERUSING *,R12LA R2,SAVEAREA CHAIN SAVE AREASST R2,8(R13)ST R13,SAVEAREA+4LR R13,R2 ESTABLISH SAVE AREASPACE 1

************************************************************************ Iniciar una sesión de interfaz de consulta ************************************************************************

LA R4,CICOMM ESTABLISH ACCESS TO DSQCOMMUSING DSQCOMM,R4SPACE 1MVC DSQ_COMM_LEVEL,DSQ_CURRENT_COMM_LEVELLA R1,1 1 PARAMETERST R1,NUMPARMSCALL DSQCIA,

(CICOMM, QI COMMON AREASTARTQIL, START COMMAND LENGTHSTARTQI, START COMMANDNUMPARMS, NUMBER OF KEYWORDSSTARTKYL, KEYWORD LENGTHSSTARTKY, KEYWORDSSTARTVL, VALUE LENGTHSSTARTV, VALUESDSQ_VARIABLE_CHAR),VL VALUES ARE CHARACTERS

SPACE 1************************************************************************ Establecer valores numéricos en consulta utilizando el mandato SET ************************************************************************

SPACE 1LA R1,20 SET VALUES TO BE MODIFIEDST R1,VVAL1LA R1,40ST R1,VVAL2LA R1,84ST R1,VVAL3LA R1,3 3 PARAMETERSST R1,NUMPARMSSPACE 1CALL DSQCIA,

(CICOMM,SETGL, SET GLOBAL COMMAND LENGTHSETG, SET GLOBAL COMMANDNUMPARMS, NUM OF VARIABLES TO BE SETVNAME1L, VARIABLE NAME LENGTHSVNAME1, VARIABLE NAMESVVAL1L, VALUE LENGTHSVVAL1, VALUES

158 Developing DB2 QMF applications

Page 171: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DSQ_VARIABLE_FINT),VL VALUES ARE INTEGERSSPACE 1

************************************************************************ Ejecutar una consulta ************************************************************************

SPACE 1CALL DSQCIA,

(CICOMM,QUERYL, QUERY COMMAND LENGTHQUERY),VL TEXT OF QUERY COMMAND

SPACE 1************************************************************************ Imprimir el resultado de la consulta ************************************************************************

SPACE 1CALL DSQCIA,(CICOMM,REPTL,REPT),VLSPACE 1

************************************************************************ Finalizar la sesión de interfaz de consulta ************************************************************************

SPACE 1CALL DSQCIA,(CICOMM,ENDQIL,ENDQI),VLSPACE 1

************************************************************************ Volver ************************************************************************

SPACE 1SR R15,R15 SET RETURN CODEL R13,4(R13)L R14,12(R13) RESTORE CALLER REGISTERSLM R0,R12,20(R13)BR R14EJECT

************************************************************************ Áreas de datos ************************************************************************

SPACE 1* Mandatos de interfaz de consulta

SPACE 1STARTQI DC C’START’ START FUNCTIONSETG DC C’SET GLOBAL’ SET GLOBAL FUNCTIONQUERY DC C’RUN QUERY Q1’ RUN QUERYREPT DC C’PRINT REPORT (FORM=F1)’ PRINT REPORTENDQI DC C’EXIT’ END INTERFACE

SPACE 1DS 0F

STARTQIL DC AL4(L’STARTQI) LENGTH OF START FUNCTIONSETGL DC AL4(L’SETG) LENGTH OF SET GLOBAL FUNCTIONQUERYL DC AL4(L’QUERY) LENGTH OF RUN QUERY COMMANDREPTL DC AL4(L’REPT) LENGTH OF PRINT REPORT COMMANDENDQIL DC AL4(L’ENDQI) LENGTH OF END INTERFACE COMMAND

SPACE 1* Palabra clave de mandato START

SPACE 1STARTKY DC C’DSQSMODE’STARTV DC C’INTERACTIVE’

DS 0FSTARTKYL DC AL4(L’STARTKY)STARTVL DC AL4(L’STARTV)

SPACE 1* Nombres de variable de mandato SET GLOBAL

SPACE 1VNAME1 DC C’MYVAR01’VNAME2 DC C’SHORT’VNAME3 DC C’MYVAR03’

DS 0FVNAME1L DC AL4(L’VNAME1)

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 159

Page 172: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

VNAME2L DC AL4(L’VNAME2)VNAME3L DC AL4(L’VNAME3)

SPACE 1* Valores de mandato SET GLOBAL

SPACE 1VVAL1 DS FVVAL2 DS FVVAL3 DS FVVAL1L DC AL4(L’VVAL1)VVAL2L DC AL4(L’VVAL2)VVAL3L DC AL4(L’VVAL3)

SPACE 1NUMPARMS DS F NUMBER OF KEYWORDS

SPACE 1* Área de comunicaciones de interfaz invocable

SPACE 1CICOMM DS CL(DSQCOMM_LEN)

SPACE 1SAVEAREA DS 18F

EJECTDSQCOMMASPACE 1

R0 EQU 00 EQUATES FOR REGISTERS 0-15R1 EQU 01R2 EQU 02R3 EQU 03R4 EQU 04R5 EQU 05R6 EQU 06R7 EQU 07R8 EQU 08R9 EQU 09R10 EQU 10R11 EQU 11R12 EQU 12R13 EQU 13R14 EQU 14R15 EQU 15

SPACE 1END DSQABFA

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

DSQCOMM para AssemblerEl archivo del área de comunicaciones de Assembler se denomina DSQCOMMA.

El archivo DSQCOMMA se proporciona en la biblioteca de QMF1110.SDSQSAPn(donde n es un identificador de idioma nacional). A continuación encontrará unacopia del archivo:

MACRODSQCOMMA

*********************************************************************** Interfaz invocable - constantes variables ************************************************************************* ID de nivel de comunicaciones*DSQ_CURRENT_COMM_LEVEL DC CL12’DSQL>001002<’** Identificadores de producto de consulta

160 Developing DB2 QMF applications

Page 173: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

*DSQ_QRW DC C’01’DSQ_QMF DC C’02’DSQ_QM4 DC C’03’** Identificadores de release de producto de consulta*DSQ_QRW_V1R2 DC C’01’DSQ_QRW_V1R3 DC C’02’DSQ_QMF_V2R4 DC C’01’DSQ_QMF_V3R1 DC C’02’DSQ_QMF_V3R1M1 DC C’03’DSQ_QMF_V3R2 DC C’04’DSQ_QMF_V3R3 DC C’05’DSQ_QMF_V6R1 DC C’06’DSQ_QMF_V7R1 DC C’07’DSQ_QM4_V1R1 DC C’01’DSQ_QMF_V7R2 DC C’08’DSQ_QMF_V8R1 DC C’09’DSQ_QMF_V9R1 DC C’10’DSQ_QMF_V10R1 DC C’11’** Tipos de datos de parámetros ampliados*DSQ_VARIABLE_CHAR DC C’CHAR’DSQ_VARIABLE_FINT DC C’FINT’** Códigos de retorno*DSQ_SUCCESS EQU 0DSQ_WARNING EQU 4DSQ_FAILURE EQU 8DSQ_SEVERE EQU 16** Valores de ID de instancia*DSQ_CONTINUE EQU 0** Indicador de cancelación*DSQ_CANCEL_YES EQU C’1’DSQ_CANCEL_NO EQU C’0’**DSQ_INTERACTIVE EQU C’1’DSQ_BATCH EQU C’2’*DSQ_YES EQU C’1’DSQ_NO EQU C’2’************************************************************************ Área de comunicaciones de interfaz invocable**********************************************************************DSQCOMM DSECTDSQ_RETURN_CODE DS F FUNCTION RETURN CODEDSQ_INSTANCE_ID DS F ID ESTABLISHED IN START CMDDSQ_COMM_LEVEL DS CL12 COMMUNICATIONS LEVEL IDDSQ_PRODUCT DS CL2 QUERY PRODUCT IDDSQ_PRODUCT_RELEASE DS CL2 QUERY PRODUCT RELEASE IDDSQ_RESERVE1 DS CL28 RESERVEDDSQ_MESSAGE_ID DS CL8 COMPLETION MESSAGE IDDSQ_Q_MESSAGE_ID DS CL8 QUERY MESSAGE IDDSQ_START_PARM_ERROR DS CL8 START PARAMETER IN ERRORDSQ_CANCEL_IND DS C CMD CANCEL INDICATORDSQ_RESERVE2 DS CL23 RESERVEDDSQ_RESERVE3 DS CL156 RESERVEDDSQ_MESSAGE_TEXT DS CL128 COMPLETION MESSAGE

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 161

Page 174: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DSQ_Q_MESSAGE_TEXT DS CL128 QUERY MESSAGESPACE 1

DSQCOMM_LEN EQU *-DSQCOMM LENGTH OF DSQCOMM AREAMEND

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

Ejecución de programas de Assembler en CICSDespués de escribir el programa, deberá traducir, ensamblar y editar los enlacesantes de ejecutarlo.

El JCL y las CLIST de REXX de estos ejemplos no se suministran con QMF, peropuede copiarlos desde aquí, modificándolos para que se ajusten a sus necesidades.

Al traducir, ensamblar y editar los enlaces de un programa que utiliza la interfazinvocable de QMF, tenga en cuenta las siguientes condiciones:v El área de comunicaciones de la interfaz, DSQCOMMA, debe estar disponible en

el paso de ensamblaje o debe copiarse en el programa como DSECT.v El módulo de interfaz de QMF, DSQCIA, debe estar disponible durante el paso

de edición de enlaces del programa.

El JCL aquí mostrado constituye un ejemplo de cómo utilizar el procedimientoDFHEBTAL, que se proporciona con CICS.//sampasm JOB// EXEC PROC=DFHEBTAL//TRN.SYSIN DD **ASM XOPTS(CICS translator options .....)

.

.

.El programa o copia de DSQABFA de ejemplo de QMF...

/*//* Proporcionar acceso a DSQCOMM - macro de comunicaciones de QMF//ASM.SYSLIB DD DSN=QMF1110.SDSQSAPE,DISP=SHR//* Proporcionar acceso a módulo de interfaz de QMF//* Asignación de la biblioteca CICS//LKED.CICSLOAD DD//* Asignación de la biblioteca de destino//LKED.SYSLMOD DD//* Asignación de la biblioteca de módulo de carga de QMF//LKED.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR//LKED.SYSIN DD *

INCLUDE CICSLOAD(DFHEAI)INCLUDE CICSLOAD(DFHEAI0)INCLUDE QMFLOAD(DSQCIA)ORDER DFHEAI,DFHEAI0ENTRY sampasmMODE AMODE(31) RMODE(31)NAME sampasm(R)

/*

162 Developing DB2 QMF applications

Page 175: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Información relacionada:

El Information Center de CICSBúsqueda de información acerca de cómo utilizar el procedimiento DFHEBTAL.

Ejecución de programas de Assembler en TSODebe ensamblar un editar los enlaces del programa antes de ejecutarlo en TSO.

Ensamblaje y edición de enlaces en TSOEste listado muestra un trabajo de muestra que ensambla y edita enlaces delprograma. Es posible que algunos parámetros cambien de una instalación de QMFa la siguiente.//sampasm JOB//STEP1 EXEC PROC=ASMACL//* Proporcionar acceso a DSQCOMM - macro de comunicaciones de QMF//C.SYSLIB DD DSN=QMF1110.SAMPLIB,DISP=SHR//C.SYSIN DD *

.

.

.El programa o copia de DSQABFA de ejemplo de QMF...

/*//* Proporcionar acceso a módulo de interfaz de QMF//* Asignación de la biblioteca de destino//L.SYSLMOD DD//* Asignación de la librería de carga de QMF//L.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR//L.SYSIN DD *

INCLUDE QMFLOAD(DSQCIA)ENTRY sampasmMODE AMODE(31) RMODE(31)NAME sampasm(R)

/*

Ejecución en TSO con ISPFDespués de ensamblar el programa satisfactoriamente, puede ejecutarlo bajo ISPF.

Ejecute el programa en TSO bajo ISPF escribiendo un programa parecido a laCLIST aquí mostrada:PROC 0CONTROL ASIS/************************************************************//* Especif. lst. atributos para asignaciones conjunto datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’,’ISR.ISRCLIB’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos utilizados por ISPF *//************************************************************/ALLOC FI(ISPLLIB) SHR REUSE +

DA(’QMF1110.SDSQLOAD’,’ADM.GDDMLOAD’,’DSN.DSNEXIT’,’DSN.DSNLOAD’)ALLOC FI(ISPMLIB) SHR REUSE +

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 163

Page 176: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DA(’QMF1110.SDSQMLBE’,’ISR.ISRMLIB’,’ISP.ISPMLIB’)ALLOC FI(ISPPLIB) SHR REUSE +

DA(’QMF1110.SDSQPLBE’,’ISR.ISRPLIB’,’ISP.ISPPLIB’)ALLOC FI(ISPSLIB) SHR REUSE +

DA(’QMF1110.SDSQSLBE’,’ISR.ISRSLIB’,’ISP.ISPSLIB’)ALLOC FI(ISPTLIB) SHR REUSE +

DA(’ISR.ISRTLIB’,’ISP.ISPTLIB’)/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE/************************************************************//* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa como diálogo ISPF inicial *//************************************************************/ISPSTART PGM(sampasm) NEWAPPL(DSQE)EXIT CODE(4)

La sentencia EXIT CODE(4) suprime el panel de eliminación de ISPF.

Ejecución en TSO sin ISPFDespués de ensamblar el programa satisfactoriamente, puede ejecutarlo sin ISPF.

Ejecute el programa en TSO sin ISPF escribiendo un programa parecido a la CLISTaquí mostrada:PROC 0CONTROL ASIS/************************************************************//* Nota: Las librerías de carga QMF, DB2 y GDDM deben asig. *//* antes de ejecutar esta CLIST. *//* El nombre de la librería de carga de QMF es"QMF1110.SDSQLOAD". *//************************************************************//* Especif. lst. atributos para asignaciones conjunto datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE

164 Developing DB2 QMF applications

Page 177: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/************************************************************//* Conjuntos de datos utilizados por QMF *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa utilizando el mandato CALL de TSO *//************************************************************/CALL sampasmEXIT CODE(0)

Intarfaz de lenguaje CPuede utilizar el lenguaje C con la interfaz invocable en QMF.

Correlación del área de comunicaciones de la interfaz dellenguaje C (DSQCOMMC)

DSQCOMMC proporciona la correlación de DSQCOMM para programas delenguaje C y se suministra con QMF.

La tabla muestra los valores de DSQCOMMC.

Tabla 45. Área de comunicaciones de la interfaz de DSQCOMMC

Nombre de la estructura Tipo de datos Descripción

DSQ_RETURN_CODE entero largo consigno

Indica el estado de un mandato de QMF después de suejecución

Sus valores son:

DSQ_SUCCESSEjecución satisfactoria de la solicitud

DSQ_WARNINGTerminación normal con avisos

DSQ_FAILUREEl mandato no se ha ejecutado correctamente

DSQ_SEVEREError grave; la sesión de QMF ha terminado

DSQ_INSTANCE_ID entero largo consigno

Identificador establecido por QMF durante la ejecucióndel mandato START

DSQ_COMM_LEVEL carácter, longitud12

Identifica el nivel de DSQCOMM

En la aplicación, incluya instrucciones que inicialicen estavariable con el valor DSQ_CURRENT_COMM_LEVELantes de emitir el mandato START de QMF.

DSQ_PRODUCT carácter, longitud 2 Identifica el producto de consulta de IBM que se estáutilizando

Las variables que empiezan por DSQ_QMF especificanversiones de QMF para TSO y QMF para CICS.

DSQ_PRODUCT_RELEASE carácter, longitud 2 Nivel de release de QMF que se está utilizando

La variable DSQ_QMF_V10R1 especifica QMF Versión 11Release 1.

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 165

Page 178: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 45. Área de comunicaciones de la interfaz de DSQCOMMC (continuación)

Nombre de la estructura Tipo de datos Descripción

DSQ_RESERVE1 carácter, longitud28

Reservado para uso en el futuro

DSQ_MESSAGE_ID carácter, longitud 8 ID de mensaje de finalización

DSQ_Q_MESSAGE_ID carácter, longitud 8 ID de mensaje de consulta

DSQ_START_PARM_ERROR carácter, longitud 8 Parámetro erróneo cuando ha fallado STAT debido a unerror de parámetro

DSQ_CANCEL_IND carácter, longitud 1 Contiene uno de dos valores, en función de si el usuarioha cancelado mientras se estaba ejecutando un mandatode QMF:

v DSQ_CANCEL_YES

v DSQ_CANCEL_NO

DSQ_RESERVE2 carácter, longitud23

Reservado para uso en el futuro

DSQ_RESERVE3 carácter, longitud156

Reservado para uso en el futuro

DSQ_MESSAGE_TEXT carácter, longitud128

Texto de mensaje de finalización

DSQ_Q_MESSAGE_TEXT carácter, longitud128

Texto de mensaje de consulta

Llamadas a función del lenguaje CQMF proporciona dos llamadas a función para el lenguaje C: DSQCIC y DSQCICE.

DSQCIC

Esta llamada es para los mandatos de QMF que no necesitan acceder a variablesdel programa de aplicación. Utilice esta llamada para la mayoría de mandatos deQMF; su sintaxis es la siguiente:

DSQCIC (&DSQCOMM,&CMDLTH,&CMDSTR)

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz

CMDLTHLa longitud de la serie de mandato (CMDSTR); un parámetro de tipo largo

CMDSTREl mandato de QMF que debe ejecutarse, especificado como una matriz deltipo de carácter sin signo de la longitud especificada por CMDLTH

El mandato de QMF debe estar mayúsculas.

DSQCICE

Esta llamada es una sintaxis ampliada de los mandatos de QMF que necesitanacceder a variables del programa de aplicación: START, TRACE y los formatosampliados de GET GLOBAL y SET GLOBAL.

166 Developing DB2 QMF applications

|||

Page 179: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DSQCICE (&DSQCOMM,&CMDLTH,&CMDSTR,&PNUM,&KLTH,&KWORD,&VLTH,&VALUE,&VTYPE);

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz.

CMDLTHLa longitud de la serie de mandato (CMDSTR); un parámetro de entero largo.

CMDSTREl mandato de QMF que debe ejecutarse; una matriz del tipo de carácter sinsigno. El mandato de QMF debe estar en mayúsculas.

PNUMEl número de palabras clave o áreas de rastro del mandato; un parámetro deenteros largo.

KLTHLa longitud de cada palabra clave especificada(KWORD) o título de rastreo; unparámetro de entero largo o una matriz de parámetros de entero largos.

KWORDPalabra clave, palabras clave o dirección de títulos de rastreo de QMF; cadauno es un carácter, matriz de caracteres o matriz de direcciones a títulos derastreo.

VLTHLa longitud de cada valor asociado con la palabra clave o título de rastreo; unparámetro de entero largo o matriz de parámetros de entero largos.

VALUEEl valor que está asociado con cada palabra clave o la dirección de un valorque está asociado con un título de rastreo.

Su tipo se especifica en el parámetro VTYPE y puede ser una matriz decaracteres sin signo, un parámetro de entero largo o una matriz de parámetrosde enteros largos. Para los datos de rastreo, VTYPE debe ser FINT.

VTYPEEl tipo de datos del contenido del parámetro VALUE.

Este parámetro tiene uno de dos valores, que se proporcionan en el área decomunicaciones de la interfaz, DSQCOMMC:v DSQ_VARIABLE_CHAR para el tipo de carácter sin signov DSQ_VARIABLE_FINT para el entero largo

Todos los valores de que se especifican en el campo VALUE deben tener el tipode datos especificado por VTYPE.

La interfaz de lenguaje C tiene las siguientes particularidades:v Las series de mandatos y los parámetros de mandato START, GET y SET son

todo series de caracteres de entrada. Con estas series, C requieres que pase unárea de almacenamiento que termina por un valor nulo, que debe incluirse en lalongitud del parámetro. Utilice la función de longitud de tiempo de compilaciónpara obtener la longitud del parámetro que se pasa a la interfaz de QMF.

v Si la serie no termina con un valor nulo antes de alcanzar el final de la serie,QMF devuelve un error. El valor nulo (X'00') indica el final de una serie decaracteres.

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 167

|||

|

|||

||

|||

||

||

|||

Page 180: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Para parámetros C que son series de caracteres de salida, incluyendo los valoresobtenidos por el mandato GET, QMF mueve datos del almacenamiento de QMFal área de almacenamiento de la aplicación. QMF también establece el indicadornulo al final de la serie. Si la serie de caracteres no se ajusta al área dealmacenamiento del usuario, el sistema emite un mensaje de aviso y los datos setruncan a la derecha. Siempre se coloca un indicador nulo al final de la serie dedatos.

Ejemplo de programación de lenguaje CEl programa C de ejemplo, DSQABFC, se suministra con QMF. El programa deejemplo es un miembro de la biblioteca QMF1110.SDSQSAPn (donde n es unidentificador de idioma nacional).

El programa de ejemplo de la interfaz invocable de lenguaje C de IBM realiza lassiguientes funciones:v Inician QMFv Establecen tres variables globalesv Ejecutan una consulta denominada Q1v Imprimen el informe de resultados utilizando el formulario F1v Finalizan la sesión de QMF

QMF no proporciona el formulario Q1 ni la consulta Q1, pero el programa deejemplo utiliza estos objetos./******************************************************************//* Programa de ejemplo: DSQABFC*//* C versión de la interfaz invocable*//******************************************************************/

/******************************************************************//* Incluir funciones de "C" estándares y de serie*//******************************************************************/#include <string.h>#include <stdlib.h>

/******************************************************************//* Incluir y declarar área de comunicaciones de interfaz de consultas*//******************************************************************/#include <DSQCOMMC.H>

int main(){

struct dsqcomm communication_area; /* DSQCOMM from include*/

/******************************************************************//* Mandatos y longitud de mandato de interfaz de consultas*//******************************************************************/signed long command_length;static char start_query_interface[] = "START";static char set_global_variables[] = "SET GLOBAL";static char run_query[] = "RUN QUERY Q1";static char print_report[] = "PRINT REPORT (FORM=F1";static char end_query_interface[] = "EXIT";

168 Developing DB2 QMF applications

Page 181: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/******************************************************************//* Ampliación de mandato de consulta, número de parámetros y longitudes*//******************************************************************/signed long number_of_parameters; /* número de variables*/signed long keyword_lengths[10]; /* longitudes y nombres de palabra clave*/signed long data_lengths[10]; /* longitudes de datos de variables*/

/******************************************************************//* Constantes de tipo de datos de variables*//******************************************************************/static char char_data_type[] = DSQ_VARIABLE_CHAR;static char int_data_type[] = DSQ_VARIABLE_FINT;

/******************************************************************//* Valor y parámetro de palabra clave de mandato START*//******************************************************************/static char start_keywords[] = "DSQSMODE";static char start_keyword_values[] = "INTERACTIVE";/******************************************************************//* Valores y parámetro de palabra clave de mandato SET*//******************************************************************/#define SIZE_VAL 8char set_keywords [3][SIZE_VAL]; /* Matriz de nombre de parámetro*/signed long set_values[3]; /* Matriz de valor de parámetro*/

/******************************************************************//* MAIN PROGRAM*//******************************************************************/

/******************************************************************//* Iniciar una sesión de interfaz de consultas*//******************************************************************/

strncpy (communication_area.dsq_comm_level,DSQ_CURRENT_COMM_LEVEL,sizeof(communication_area.dsq_comm_level));

number_of_parameters = 1;command_length = sizeof(start_query_interface);keyword_lengths[0] = sizeof(start_keywords);data_lengths[0] = sizeof(start_keyword_values);dsqcice(&área_comunicación,;

&longitud_mandato,;

&iniciar_interfaz_consultas[0],

&número_de_parámetros,;

&keyword_lengths[0],&start_keywords[0],&data_lengths[0],&start_keyword_values[0],&char_data_type[0]);

/******************************************************************//* Establecer valores numéricos en consulta utilizando mandato SET*/

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 169

Page 182: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/******************************************************************/number_of_parameters = 3;command_length = sizeof(set_global_variables);strcpy(set_keywords[0],"MYVAR01");strcpy(set_keywords[1],"SHORT");strcpy(set_keywords[2],"MYVAR03");keyword_lengths[0] = SIZE_VAL;keyword_lengths[1] = SIZE_VAL;keyword_lengths[2] = SIZE_VAL;data_lengths[0] = sizeof(long);data_lengths[1] = sizeof(long);data_lengths[2] = sizeof(long);set_values[0] = 20;set_values[1] = 40;set_values[2] = 84;dsqcice(&área_comunicación,;

&longitud_mandato,;

&set_global_variables[0],&número_de_parámetros,;

&keyword_lengths[0],&set_keywords[0][0],&data_lengths[0],&set_values[0],&int_data_type[0]);

/******************************************************************//* Ejecutar una consulta*//******************************************************************/

command_length = sizeof(run_query);dsqcic(&área_comunicación,&longitud_mandato,;

&run_query[0]);

/******************************************************************//* Imprimir los resultados de la consulta*//******************************************************************/

command_length = sizeof(print_report);dsqcic(&área_comunicación,&longitud_mandato,;

&print_report[0]);

/******************************************************************//* Finalizar la sesión de la interfaz de consultas*//******************************************************************/

command_length = sizeof(end_query_interface);dsqcic(&área_comunicación,&longitud_mandato,;

&end_query_interface[0]);exit(0);

}

DSQCOMM para CEl archivo del área de comunicaciones de la interfaz del lenguaje C se denominaDSQCOMMC.

El archivo de inclusión de DSQCOMMC, aquí mostrado, se suministra con QMF./******************************************************************//* Inclusión C para la interfaz invocable de consulta *//******************************************************************/

170 Developing DB2 QMF applications

Page 183: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/* Declaración de estructura para área de comunicaciones */

struct dsqcomm {long int dsq_return_code; /* Código retorno función */long int dsq_instance_id; /* ID establecido en cmd START*/char dsq_comm_level[12]; /* ID nivel comunicaciones */char dsq_product[2]; /* ID producto consulta */char dsq_product_release[2]; /* Release producto consulta */char dsq_reserve1[28]; /* Reservadop */char dsq_message_id[8]; /* ID mensaje de finalización */char dsq_q_message_id[8]; /* ID mensaje consulta */char dsq_start_parm_error[8]; /* Parámetro START erróneo */char dsq_cancel_ind[1]; /* Indicador cancelado Cmd */

/* 1 = cancelado, 0 = no cancelado */char dsq_reserve2[23]; /* RESERVED AREAS */char dsq_reserve3[156];char dsq_message_text[128]; /* Texto de mensaje */char dsq_q_message_text[128]; /* Texto de mensaje consulta*/

} ;

/* RETURN CODES */

#define DSQ_SUCCESS 0#define DSQ_WARNING 4#define DSQ_FAILURE 8#define DSQ_SEVERE 16

/* Nivel de comunicaciones */

#define DSQ_CURRENT_COMM_LEVEL "DSQL>001002<"

/* Códigos de producto de consulta */

#define DSQ_QRW "01"#define DSQ_QMF "02"#define DSQ_QM3 "03"

/* Niveles de release de producto de consulta */

#define DSQ_QRW_V1R2 "01"#define DSQ_QRW_V1R3 "02"#define DSQ_QMF_V2R4 "01"#define DSQ_QMF_V3R1 "02"#define DSQ_QMF_V3R1M1 "03"#define DSQ_QMF_V3R2 "04"#define DSQ_QMF_V3R3 "05"#define DSQ_QMF_V6R1 "06"#define DSQ_QMF_V7R1 "07"#define DSQ_QM4_V1R1 "01"#define DSQ_QMF_V7R2 "08"#define DSQ_QMF_V8R1 "09"#define DSQ_QMF_V9R1 "10"#define DSQ_QMF_V10R1 "11"

/* INSTANCE CODES */

#define DSQ_CONTINUE 0

/* CANCELLED INDICATOR */

#define DSQ_CANCEL_YES "1"#define DSQ_CANCEL_NO "0"

/* VARIABLE TYPES */

#define DSQ_VARIABLE_CHAR "CHAR"

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 171

Page 184: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

#define DSQ_VARIABLE_FINT "FINT"

#define DSQ_INTERACTIVE "1"#define DSQ_BATCH "2"

#define DSQ_YES "1"#define DSQ_NO "2"

/* Llamar estructura de interfaz */

/* Llamada a formato de llamada normal con 3 parámetros */#define dsqcic(parm1, parm2, parm3 )\

dsqcicx( parm1, parm2, parm3)

/* Llamada formato para llamada con área CMD_EXT con 9 parámetros */#define dsqcice(parm1, parm2, parm3,\

parm4, parm5, parm6, parm7, parm8, parm9 )\dsqcicx( parm1, parm2, parm3, \parm4, parm5, parm6, \parm7, parm8, parm9 )

/* DECLARE OS LINKAGE FORMAT */

#pragma linkage(dsqcicx, OS)

Ejecución de programas C en CICSDespués de escribir su programa en C, deberá traducir, compilar y editar susenlaces antes de poder ejecutarlo.

Estos ejemplos muestran los pasos necesarios para traducir, compilar y editar losenlaces del programa. El JCL y las CLIST de REXX en estos ejemplos no sesuministran con QMF, pero puede copiarlos de aquí y modificarlos para que seadapten a sus necesidades.

Al traducir, compilar y editar los enlaces de un programa que utiliza la interfazinvocable de QMF en CICS, tenga en cuenta las siguientes condiciones:v El área de comunicaciones de la interfaz DSQCOMMC debe estar disponible

para el paso de compilación o debe haberse copiado en el programa.v El módulo de interfaz de QMF DSQCICX debe estar disponible durante el paso

de edición de enlaces del programa.v Deben editarse los enlaces de los programas escritos en C con AMODE=31.

El ejemplo aquí mostrado utiliza el procedimiento DFHYITDL que se proporcionacon CICS.//sampleC JOB// EXEC PROC=DFHYITDL//TRN.SYSIN DD *...El programa o copia de DSQABFC de ejemplo de QMF.../*//* Prporcionar acceso a DSQCOMMC - macro de comunicaciones de QMF//C.SYSLIB DD DSN=QMF1110.SDSQSAPE,DISP=SHR//* Asignación de la biblioteca de destino//LKED.SYSLMOD DD//* Asignación de la librería de carga de QMF//LKED.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR

172 Developing DB2 QMF applications

Page 185: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

//LKED.SYSIN DD *INCLUDE QMFLOAD(DSQCICX)NAME sampleC(R)/*

Ejecución de programas C en TSOPara ejecutar el programa C en TSO, compile y edite el enlace del programa y, acontinuación, ejecútelo con o sin ISPF.

Compilación y edición de enlaces en TSODebe compilar y editar enlaces del programa C antes de poder ejecutarlo en TSO.

Este trabajo compila y edita los enlaces de la aplicación de la interfaz invocableutilizando el compilador C de IBM para z/OS. Es posible que algunos parámetroscambien de una instalación de QMF a la siguiente.//sampleC JOB//STEP1 EXEC PROC=EDCCB,// INFILE=’nombre del conjunto de datos que contiene el código fuente’,// OUTFILE=’nombre del conjunto de datos que contiene el ejecutable’//* Proporcionar acceso a DSQCOMM - macro de comunicaciones de QMF//COMPILE.SYSLIB DD DSN=QMF1110.SAMPLIB,DISP=SHR//BIND.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR//BIND.SYSIN DD *INCLUDE QMFLOAD(DSQCICX)/*

Información relacionada:

El Centro de publicaciones de IBMBúsqueda de información acerca del compilador C de IBM para z/OS.

Ejecución de programas en TSO sin ISPFDespués de compilar satisfactoriamente el programa C, puede ejecutarlo sin ISPF.

Ejecute el programa en TSO sin ISPF escribiendo un programa parecido a la CLISTmostrada:PROC 0CONTROL ASIS/************************************************************//* Nota: Las librerías de carga de QMF, DB2, GDDM y C deben *//* asignarse antes de ejecutar esta CLIST. *//* El nombre de la librería de carga de QMF load library es"QMF1110.SDSQLOAD". *//************************************************************//* Especif. lst. atributos para asignaciones conjunto datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 173

Page 186: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/************************************************************//* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa utilizando el mandato CALL de TSO *//************************************************************/CALL sampleCEXIT CODE(0)

Ejecución de programas en TSO bajo ISPFDespués de que el programa C se compile satisfactoriamente, podrá ejecutarlo bajoISPF.

Ejecute el programa en TSO bajo ISPF escribiendo un programa parecido a laCLIST para ejecutar el programa DSQABFC aquí mostrado:PROC 0CONTROL ASIS/************************************************************//* Especificar lista de atributos para asignaciones de conjunto de datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’,’ISR.ISRCLIB’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos utilizados por ISPF *//************************************************************/ALLOC FI(ISPLLIB) SHR REUSE +

DA(’QMF1110.SDSQLOAD’,’ADM.GDDMLOAD’,’DSN.DSNEXIT’,’DSN.DSNLOAD’, +’EDC.SEDCLINK’,’PLI.SIBMLINK’)

ALLOC FI(ISPMLIB) SHR REUSE +DA(’QMF1110.SDSQMLBE’,’ISR.ISRMLIB’,’ISP.ISPMLIB’)

ALLOC FI(ISPPLIB) SHR REUSE +DA(’QMF1110.SDSQPLBE’,’ISR.ISRPLIB’,’ISP.ISPPLIB’)

ALLOC FI(ISPSLIB) SHR REUSE +DA(’QMF1110.SDSQSLBE’,’ISR.ISRSLIB’,’ISP.ISPSLIB’)

ALLOC FI(ISPTLIB) SHR REUSE +DA(’ISR.ISRTLIB’,’ISP.ISPTLIB’)

/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE/************************************************************//* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)

174 Developing DB2 QMF applications

Page 187: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa como diálogo ISPF inicial *//************************************************************/ISPSTART PGM(sampleC) NEWAPPL(DSQE)EXIT CODE(4)

La sentencia EXIT CODE(4) suprime el panel de eliminación de ISPF.

Interfaz de lenguaje de COBOLPuede utilizar el lenguaje COBOL con la interfaz invocable en QMF.

Correlación del área de comunicaciones de la interfaz deCOBOL (DSQCOMMB)

DSQCOMMB proporciona la correlación de DSQCOMM para los programas conlenguaje COBOL y se suministra con QMF.

Esta tabla muestra los valores de DSQCOMMB.

Tabla 46. Área de comunicaciones de la interfaz de COBOL (DSQCOMMB)

Nombre de la estructura Tipo de datos Descripción

DSQ-RETURN-CODE PIC 9(8) Indica el estado de un mandato de QMF tras suejecución

Sus valores son:

DSQ-SUCCESSEjecución satisfactoria de la solicitud

DSQ-WARNINGTerminación normal con avisos

DSQ-FAILUREEl mandato no se ha ejecutado correctamente

DSQ-SEVEREError grave; sesión de QMF terminada

DSQ-INSTANCE-ID PIC 9(8) Identificador establecido por QMF durante la ejecucióndel mandato START

DSQ-COMM-LEVEL PIC X(12) Identifica el nivel de DSQCOMM

En la aplicación, incluya instrucciones que inicialicenesta variable con el valorDSQ_CURRENT_COMM_LEVEL antes de emitir elmandato START de QMF.

DSQ-PRODUCT PIC X(2) Identifica el producto de consulta de IBM que se estáutilizando

Las variables que empiezan por DSQ-QMF especificanQMF para TSO y QMF para CICS versions.

DSQ-PRODUCT-RELEASE PIC X(2) Nivel de release de QMF que se está utilizando

La variable DSQ_QMF_V10R1 especifica QMF Versión11 Release 1.

DSQ-RESERVE1 PIC X(28) Reservado para uso en el futuro

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 175

Page 188: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 46. Área de comunicaciones de la interfaz de COBOL (DSQCOMMB) (continuación)

Nombre de la estructura Tipo de datos Descripción

DSQ-MESSAGE-ID PIC X(8) ID de mensaje de finalización

DSQ-Q-MESSAGE-ID PIC X(8) ID de mensaje de consulta

DSQ-START-PARM-ERROR PIC X(8) Parámetro erróneo cuando ha fallado STAT debido a unerror de parámetro

DSQ-CANCEL-IND PIC X(1) Contiene uno de dos valores, en función de si el usuarioha cancelado mientras se estaba ejecutando un mandatode QMF:

v DSQ-CANCEL-YES

v DSQ-CANCEL-NO

DSQ-RESERVE2 PIC X(23) Reservado para uso en el futuro

DSQ-RESERVE3 PIC X(156) Reservado para uso en el futuro

DSQ-MESSAGE-TEXT PIC X(128) Texto de mensaje de finalización

DSQ-Q-MESSAGE-TEXT PIC X(128) Texto de mensaje de consulta

Llamadas a función de COBOLQMF proporciona una llamada a función para el lenguaje COBOL: DSQCIB. Lallamada a función tiene dos formatos: DSQCIB y DSQCIB (formato ampliado).

DSQCIB

Esta llamada es para mandatos de QMF que no necesiten acceder a variables delprograma de aplicación. Utilice esta llamada para la mayoría de mandatos QMF.

CALL DSQCIB USING DSQCOMM CMDLTH CMDSTR

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz

CMDLTHLongitud de la serie de mandato (CMDSTR); un parámetro de entero

CMDSTREl mandato de QMF que debe ejecutarse; una serie de caracteres enmayúsculas con la longitud especificada por CMDLTH

DSQCIB (formato ampliado)

Esta llamada es una sintaxis ampliada de los mandatos de QMF que necesitanacceder a variables del programa de aplicación: START, TRACE y los formatosampliados de GET GLOBAL y SET GLOBAL.

DSQCIB USINGDSQCOMM CMDLTH CMDSTRPNUM KLTH KWORD VLTH VALUE VTYPE

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz.

CMDLTHLa longitud de la serie de mandato (CMDSTR); un parámetro de entero.

176 Developing DB2 QMF applications

|||

|||

|

Page 189: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

CMDSTREl mandato de QMF que debe ejecutarse; una serie de caracteres enmayúsculas de la longitud especificada por CMDLTH.

PNUMEl número de palabras clave de mandato o áreas de rastreo; un parámetro deentero.

KLTHLa longitud de cada palabra clave o título de rastreo especificado; unparámetro de entero o una matriz de parámetros de entero.

KWORDPalabra clave, palabras clave o dirección de títulos de rastreo de QMF.

Cada uno es un carácter, matriz de caracteres o matriz de direcciones pararastrear títulos cuyas longitudes vienen especificadas por KLTH. Si todas laspalabras clave tienen la misma longitud, puede utilizar una matriz decaracteres.

VLTHLa longitud de cada valor que se asocia con la palabra clave o título de rastreo;un parámetro de entero o una matriz de parámetros de entero.

VALUEEl valor que está asociado con cada palabra clave o la dirección de un valorque está asociado con un título de rastreo.

Su tipo se especifica en el parámetro VTYPE y puede ser un carácter, unamatriz de caracteres, un parámetro de entero o una matriz de parámetros deentero. Para los datos de rastreo, VTYPE debe ser FINT.

VTYPEEl tipo de datos del contenido del parámetro VALUE.

Este parámetro tiene uno de dos valores, que se suministran en el área decomunicaciones, DSQCOMMB:v DSQ-VARIABLE-CHAR para valores de carácterv DSQ-VARIABLE-FINT para valores enteros

Todos los valores que se especifican en el campo VALUE deben tener el tipo dedatos que se especifica en VTYPE.

El servicio LIBDEF ISPF con COBOLCambie las llamadas dinámicas de la interfaz de QMF (DSQCIB) para que lasllamadas estáticas utilicen la función LIBDEF en la aplicación QMF.

Por ejemplo, considere la siguiente sentencia de identificador de llamadas:CALL DSQCIB USING ...

Puede cambiar esta sentencia por su formato literal de llamadas de la siguientemanera:CALL "DSQCIB" USING ...

Ejemplo de programación de COBOLEl programa de ejemplo de COBOL, DSQABFCO, se suministra con QMF. Elprograma de ejemplo es un miembro de la biblioteca QMF1110.SDSQSAPn (donden es un identificador de idioma nacional).

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 177

||

||

|

||||

||

||

|||

Page 190: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

El programa de ejemplo para la interfaz invocable de COBOL realiza las siguientesfunciones:v Inician QMFv Establecen tres variables globalesv Ejecutan una consulta denominada Q1v Imprimen el informe de resultados utilizando el formulario F1v Finalizan la sesión de QMF

QMF no proporciona el formulario Q1 ni la consulta Q1, pero el programa deejemplo utiliza estos objetos.

Para CICS, la sentencia STOP RUN debe cambiarse por una sentencia GOBACK.****************************************************************** A continuación se muestra una versión de COBOL de la consulta ** de la interfaz invocable *** DSQABFCO **. ******************************************************************IDENTIFICATION DIVISION.PROGRAM-ID. DSQABFCO.

DATE-COMPILED.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.****************************************************************** Copiar definición DSQCOMMB - contiene var. interfaz consulta ******************************************************************

COPY DSQCOMMB.

* Mandatos de la interfaz de consulta01 STARTQI PIC X(5) VALUE "START".01 SETG PIC X(10) VALUE "SET GLOBAL".01 QUERY PIC X(12) VALUE "RUN QUERY Q1".01 REPT PIC X(22) VALUE "PRINT REPORT (FORM=F1 ".01 ENDQI PIC X(4) VALUE "EXIT".

* Longitud de mandato de consulta01 QICLTH PIC 9(8) USAGE IS COMP-4.* Número de variables01 QIPNUM PIC 9(8) USAGE IS COMP-4.* Longitudes de variable de palabra clave01 QIKLTHS.

03 KLTHS PIC 9(8) OCCURS 10 USAGE IS COMP-4.* Longitudes de valor01 QIVLTHS.

03 VLTHS PIC 9(8) OCCURS 10 USAGE IS COMP-4.* Iniciar palabra clave de mandato01 SNAMES.

03 SNAME1 PIC X(8) VALUE "DSQSMODE".* Iniciar valor de palabra clave de mandato01 SVALUES.

03 SVALUE1 PIC X(11) VALUE "INTERACTIVE".* Establecer nombres de variable de mandato GLOBAL que deben establecerse01 VNAMES.

03 VNAME1 PIC X(7) VALUE "MYVAR01".03 VNAME2 PIC X(5) VALUE "SHORT".03 VNAME3 PIC X(7) VALUE "MYVAR03".

* Parámetros de valor de variable01 VVALUES.

03 VVALS PIC 9(8) OCCURS 10 USAGE IS COMP-4.

01 TEMP PIC 9(8) USAGE IS COMP-4.PROCEDURE DIVISION.** Iniciar una sesión de interfaz de consulta

178 Developing DB2 QMF applications

Page 191: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

MOVE DSQ-CURRENT-COMM-LEVEL TO DSQ-COMM-LEVEL.MOVE 5 TO QICLTH.MOVE 8 TO KLTHS(1).MOVE 11 TO VLTHS(1).MOVE 1 TO QIPNUM.CALL DSQCIB USING DSQCOMM, QICLTH, STARTQI,

QIPNUM, QIKLTHS, SNAMES,** Establecer valores numéricos en las variables de consulta utilizando el mandato SET GLOBAL

MOVE 10 TO QICLTH.MOVE 7 TO KLTHS(1).MOVE 5 TO KLTHS(2).MOVE 7 TO KLTHS(3).MOVE 4 TO VLTHS(1).MOVE 4 TO VLTHS(2).MOVE 4 TO VLTHS(3).MOVE 20 TO VVALS(1).MOVE 40 TO VVALS(2).MOVE 84 TO VVALS(3).MOVE 3 TO QIPNUM.CALL DSQCIB USING DSQCOMM, QICLTH, SETG,

QIPNUM, QIKLTHS, VNAMES,QIVLTHS, VVALUES, DSQ-VARIABLE-FINT.

** Ejecutar una consulta

MOVE 12 TO QICLTH.CALL DSQCIB USING DSQCOMM, QICLTH, QUERY.

** Imprimir los resultados de la consulta

MOVE 22 TO QICLTH.CALL DSQCIB USING DSQCOMM, QICLTH, REPT.

** Finalizar la sesión de la interfaz de consulta

MOVE 4 TO QICLTH.CALL DSQCIB USING DSQCOMM, QICLTH, ENDQI.

STOP RUN.

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

DSQCOMM para COBOLEl archivo del área de comunicaciones de la interfaz del lenguaje COBOL sedenomina DSQCOMMB.

El archivo de inclusión DSQCOMMB aquí mostrado se suministra con QMF:************************************************************** COBOL INCLUDE FOR QUERY CALLABLE INTERFACE*************************************************************

* STRUCTURE DECLARE FOR COMMUNICATIONS AREA

01 DSQCOMM.

03 DSQ-RETURN-CODE PIC 9(8) USAGE IS COMP.* FUNCTION RETURN CODE *

03 DSQ-INSTANCE-ID PIC 9(8) USAGE IS COMP.* IDENTIFIER FROM START CMD *

03 DSQ-COMM-LEVEL PIC X(12).* COMMUNICATIONS LEVEL *

03 DSQ-PRODUCT PIC X(2).

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 179

Page 192: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

* QUERY PRODUCT ID *03 DSQ-PRODUCT-RELEASE PIC X(2).

* QUERY PRODUCT RELEASE *03 DSQ-RESERVE1 PIC X(28).

* RESERVED AREA *03 DSQ-MESSAGE-ID PIC X(8).

* COMPLETION MESSAGE ID *03 DSQ-Q-MESSAGE-ID PIC X(8).

* QUERY MESSAGE ID *03 DSQ-START-PARM-ERROR PIC X(8).

* START PARAMETER IN ERROR *03 DSQ-CANCEL-IND PIC X(1).

* 1 = COMMAND CANCELLED ** 0 = COMMAND NOT CANCELLED *

03 DSQ-RESERVE2 PIC X(23).* RESERVED AREA *

03 DSQ-RESERVE3 PIC X(156).* RESERVED AREA *

03 DSQ-MESSAGE-TEXT PIC X(128).* QMF MESSAGE TEXT *

03 DSQ-Q-MESSAGE-TEXT PIC X(128).* QMF QUERY MESSAGE TEXT ** 512 BYTES TOTAL *

* VALUES FOR DSQ-RETURN-CODE

01 DSQ-SUCCESS PIC 9(8) USAGE IS COMP VALUE 0.01 DSQ-WARNING PIC 9(8) USAGE IS COMP VALUE 4.01 DSQ-FAILURE PIC 9(8) USAGE IS COMP VALUE 8.01 DSQ-SEVERE PIC 9(8) USAGE IS COMP VALUE 16.

* VALUES FOR DSQ-INSTANCE-ID

01 DSQ-CONTINUE PIC 9(8) USAGE IS COMP VALUE 0.

* VALUES FOR DSQ-COMM-LEVEL

01 DSQ-CURRENT-COMM-LEVEL PIC X(12) VALUE "DSQL>001002<".

* VALUES FOR DSQ-PRODUCT

01 DSQ-QRW PIC X(2) VALUE "01".01 DSQ-QMF PIC X(2) VALUE "02".01 DSQ-QM4 PIC X(2) VALUE "03".

* VALUES FOR DSQ-PRODUCT-RELEASE

01 DSQ-QRW-V1R2 PIC X(2) VALUE "01".01 DSQ-QRW-V1R3 PIC X(2) VALUE "02".01 DSQ-QMF-V2R4 PIC X(2) VALUE "01".01 DSQ-QMF-V3R1 PIC X(2) VALUE "02".01 DSQ-QMF-V3R1M1 PIC X(2) VALUE "03".01 DSQ-QMF-V3R2 PIC X(2) VALUE "04".01 DSQ-QMF-V3R3 PIC X(2) VALUE "05".01 DSQ-QMF-V6R1 PIC X(2) VALUE "06".01 DSQ-QMF-V7R1 PIC X(2) VALUE "07".01 DSQ-QM4-V1R1 PIC X(2) VALUE "01".01 DSQ-QMF-V7R2 PIC X(2) VALUE "08".01 DSQ-QMF-V8R1 PIC X(2) VALUE "09".01 DSQ-QMF-V9R1 PIC X(2) VALUE "10".01 DSQ-QMF-V10R1 PIC X(2) VALUE "11".

* VALUES FOR DSQ-CANCEL-IND

01 DSQ-CANCEL-YES PIC X(1) VALUE "1".01 DSQ-CANCEL-NO PIC X(1) VALUE "0".

180 Developing DB2 QMF applications

Page 193: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

* VALUES FOR MODE

01 DSQ-INTERACTIVE PIC X(1) VALUE "1".01 DSQ-BATCH PIC X(1) VALUE "2".

* VALUES YES AND NO

01 DSQ-YES PIC X(1) VALUE "1".01 DSQ-NO PIC X(1) VALUE "2".

* CALLABLE INTERFACE PROGRAM NAME

01 DSQCIB PIC X(6) VALUE "DSQCIB".

* VALUES FOR VARIABLE TYPE ON CALL PARAMETER

01 DSQ-VARIABLE-CHAR PIC X(4) VALUE "CHAR".01 DSQ-VARIABLE-FINT PIC X(4) VALUE "FINT".

Consideraciones acerca de la ejecución del programa de lainterfaz invocable de COBOL

Preste atención a los detalles acerca de la ejecución de un programa deCOBOL queutilice la interfaz invocable de QMF.

Cuando traduzca, compile o edite los enlaces de un programa que utilice lainterfaz invocable de QMF, tenga en cuenta las siguientes condiciones:v El entorno de ejecución

QMF se ejecuta como un programa de Assembler en el entorno de COBOL. Elprograma de COBOL debe llamar al programa de la interfaz de QMF, DSQCIB,utilizando una llamada dinámica de COBOL.

v Acerca de si deben utilizarse comillas o apóstrofesDebe utilizar las comillas dobles (") o apóstrofes (') para delimitar los literales enun programa de COBOL. Puede especificar el delimitador que quiera para elproceso de traducción de CICS y el compilador de COBOL especificando QUOTE oAPOST. Asegúrese de que la opción APOST o QUOTE en vigor para elcompilador de COBOL coincida con el traductor de CICS.El área de comunicaciones (DSQCOMMB) y el programa de COBOL de ejemplo(DSQABFCO) tal como lo distribuye QMF utilizan comillas para delimitar losliterales. Si el sitio o el programa utilizan apóstrofes en lugar de comillas,modifique DSQCOMMB o copie la estructura en el programa, cambiando lascomillas por apóstrofes.

v Disponibilidad del área de comunicaciones (DSQCOMMB)El área de comunicaciones DSQCOMMB debe estar disponible para el paso decompilación de COBOL o debe copiarse en el programa como una estructura decontrol.

v Disponibilidad del módulo de interfaz (DSQCIB)El módulo de interfaz de QMF debe estar disponible durante el paso de ediciónde enlaces del programa.

Ejecución de programas de COBOL en CICSDespués de escribir el programa en COBOL, deberá traducir, compilar y editar susenlaces antes de poder ejecutarlo.

El JCL en estos ejemplos no se proporciona con QMF, pero puede copiarlo desdeaquí, modificándolo para que se adapte a sus necesidades.

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 181

Page 194: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

El ejemplo muestra el procedimiento DFHEBTVL, suministrado con CICS, y que dasoporte a COBOL.//samCOBOL JOB// EXEC PROC=DFHEBTVL//TRN.SYSIN DD **CBL XOPTS(CICS translator options ...QUOTE COBOL2)

.

.

.El programa o copia de DSQABFCO de ejemplo de QMF...

/*//* Proporcionar acceso a DSQCOMMB - macro de comunicaciones de QMF//COB.SYSLIB DD DSN=QMF1110.SDSQSAPE,DISP=SHR//* Asignación de la biblioteca de destino//LKED.SYSLMOD DD//* Asignación de la librería de carga de QMF//LKED.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR//LKED.SYSIN DD *

INCLUDE CICSLOAD(DFHECI)INCLUDE QMFLOAD(DSQCIB)ORDER DFHECIENTRY samCOBOLMODE AMODE(31) RMODE(31)NAME samCOBOL(R)

/*

Información relacionada:

El Information Center de CICSBúsqueda de información acerca de cómo utilizar el procedimiento DFHEBTVL.

Ejecución de programas de COBOL en TSOPara ejecutar programa COBOL en TSO, compile y edite el enlace del programa y,a continuación, ejecútelo con o sin ISPF.

Compilación y edición de enlaces en TSODebe compilar y editar los enlaces del programa COBOL antes de ejecutarlo enTSO.

Este trabajo utiliza el compilador de COBOL para compilar la aplicación de lainterfaz invocable. A continuación, edite los enlaces de la aplicación. Es posible quealgunos parámetros cambien de una instalación de QMF a la siguiente.//samCOBOL JOB//STEP1 EXEC PROC=IGYWCL//* Proporcionar acceso a DSQCOMM - macro de comunicaciones de QMF//COBOL.SYSLIB DD DSN=QMF1110.SAMPLIB,DISP=SHR//COBOL.SYSIN DD *

.

.

.El programa o copia de DSQABFCO de ejemplo de QMF...

//* Proporcionar acceso a módulo de interfaz de QMF//* Asignación de la biblioteca de destino//LKED.SYSLMOD DD//* Asignación de la librería de carga de QMF//LKED.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR//LKED.SYSIN DD *

INCLUDE QMFLOAD(DSQCIB)

182 Developing DB2 QMF applications

Page 195: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

ENTRY samCOBOLMODE AMODE(31) RMODE(31)NAME samCOBOL(R)

/*

Ejecución de programas en TSO sin ISPFDespués de que el programa COBOL se compile satisfactoriamente, puedeejecutarlo con JCL y sin ISPF.

Ejecute el compilador y el editor de enlaces de COBOL en TSO sin ISPFescribiendo un programa parecido a la CLIST aquí mostrada:PROC 0CONTROL ASIS/************************************************************//* Nota: Las librerías de carga QMF, DB2, GDDM y COBOL deben *//* asignarse antes de ejecutar esta CLIST. *//* El nombre de la librería de carga de QMF load library es"QMF1110.SDSQLOAD". *//************************************************************//* Especificar lista de atributos para asignaciones de conjunto de datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE/************************************************************//* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa utilizando el mandato CALL de TSO *//************************************************************/CALL samCOBOLEXIT CODE(0)

Ejecución de programas en TSO bajo ISPFDespués de que el programa COBOL se compile satisfactoriamente, puedeejecutarlo bajo ISPF.

Ejecute el programa en TSO bajo ISPF escribiendo un programa parecido a laCLIST aquí mostrada:PROC 0CONTROL ASIS/************************************************************//* Especif. lst. atributos para asignaciones conjunto datos *//************************************************************/

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 183

Page 196: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’,’ISR.ISRCLIB’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos utilizados por ISPF *//************************************************************/ALLOC FI(ISPLLIB) SHR REUSE +

DA(’QMF1110.SDSQLOAD’,’ADM.GDDMLOAD’,’DSN.DSNEXIT’,’DSN.DSNLOAD’, +’PRDUCT.COB2LIB’)

ALLOC FI(ISPMLIB) SHR REUSE +DA(’QMF1110.SDSQMLBE’,’ISR.ISRMLIB’,’ISP.ISPMLIB’)

ALLOC FI(ISPPLIB) SHR REUSE +DA(’QMF1110.SDSQPLBE’,’ISR.ISRPLIB’,’ISP.ISPPLIB’)

ALLOC FI(ISPSLIB) SHR REUSE +DA(’QMF1110.SDSQSLBE’,’ISR.ISRSLIB’,’ISP.ISPSLIB’)

ALLOC FI(ISPTLIB) SHR REUSE +DA(’ISR.ISRTLIB’,’ISP.ISPTLIB’)

/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE/************************************************************//* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa como diálogo ISPF inicial *//************************************************************/ISPSTART PGM(samCOBOL) NEWAPPL(DSQE)EXIT CODE(4)

La sentencia EXIT CODE(4) suprime la visualización del panel de eliminación deISPF.

Interfaz de lenguaje FortranPuede utilizar el lenguaje Fortran con la interfaz invocable en QMF para TSO.

Restricción: Puesto que Fortran no está disponible en CICS, la interfaz invocablede QMF para Fortran no funciona bajo CICS.

Correlación del área de comunicaciones de la interfaz deFortran (DSQCOMMF)

DSQCOMMF proporciona la correlación de DSQCOMM para programas delenguaje Fortran y se suministra con QMF.

184 Developing DB2 QMF applications

Page 197: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

La tabla muestra la información de DSQCOMMF, que no debe modificarse:

Tabla 47. Área de comunicaciones de la interfaz de Fortran (DSQCOMMF)

Nombre de la estructura Tipo de datos Descripción

DSQ_RETURN_CODE INTEGER Indica el estado de un mandato de QMF después desu ejecución

Sus valores son:

DSQ_SUCCESSEjecución satisfactoria de la solicitud

DSQ_WARNINGTerminación normal con avisos

DSQ_FAILUREEl mandato no se ha ejecutadocorrectamente

DSQ_SEVEREError grave; la sesión de QMF ha terminado

DSQ_INSTANCE_ID INTEGER Identificador establecido por QMF durante laejecución del mandato START

DSQ_COMM_LEVEL CHARACTER(12) Identifica el nivel de DSQCOMM

En la aplicación, incluya instrucciones que inicialicenesta variable con el valorDSQ_CURRENT_COMM_LEVEL antes de emitir elmandato START de QMF.

DSQ_PRODUCT CHARACTER(2) Identifica el producto de consulta de IBM que se estáutilizando

Las variables que empiezan por DSQ_QMFespecifican versiones de QMF para TSO.

DSQ_PRODUCT_RELEASE CHARACTER(2) Nivel de release de QMF que se está utilizando

La variable DSQ_QMF_V10R1 especifica QMFVersión 11 Release 1.

DSQ_RESERVE1 CHARACTER(28) Reservado para uso en el futuro

DSQ_MESSAGE_ID CHARACTER(8) ID de mensaje de finalización

DSQ_Q_MESSAGE_ID CHARACTER(8) ID de mensaje de consulta

DSQ_START_PARM_ERROR CHARACTER(8) Parámetro erróneo cuando ha fallado STAT debido aun error de parámetro

DSQ_CANCEL_IND CHARACTER(1) Contiene uno de dos valores, en función de si elusuario ha cancelado mientras se estaba ejecutandoun mandato de QMF:

v DSQ_CANCEL_YES

v DSQ_CANCEL_NO

DSQ_RESERVE2 CHARACTER(23) Reservado para uso en el futuro

DSQ_RESERVE3 CHARACTER(156) Reservado para uso en el futuro

DSQ_MESSAGE_TEXT CHARACTER(128) Texto de mensaje de finalización

DSQ_Q_MESSAGE_TEXT CHARACTER(128) Texto de mensaje de consulta

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 185

Page 198: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Llamadas a función para FortranQMF proporciona dos llamadas a función para el lenguaje Fortran: DSQCIF yDSQCIFE. Las dos llamadas se describen en el área de comunicaciones(DSQCOMMF).

DSQCIF

Esta llamada es para mandatos de QMF que no necesiten acceder a variables delprograma de aplicación. Utilice esta llamada para la mayoría de mandatos QMF.RC = DSQCIF(DSQCOMM,+ CMDLTH,+ CMDSTR)

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones.

CMDLTHLa longitud de la serie de mandato (CMDSTR); un parámetro de entero.

CMDSTREl mandato de QMF que debe ejecutarse; una serie de caracteres enmayúsculas de la longitud especificada por CMDLTH.

DSQCIFE

Esta llamada tiene una sintaxis ampliada para los mandatos que necesitan accedera variables del programa de aplicación: START, TRACE y formatos ampliados deGET GLOBAL y SET GLOBAL.

La sintaxis de la llamada es:RC = DSQCIFE(DSQCOMM,+ CMDLTH,+ CMDSTR,+ PNUM,+ KLTH,+ KWORD,+ VLTH,+ VALUE,+ VTYPE)

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz.

CMDLTHLa longitud de la serie de mandato (CMDSTR); un parámetro de entero.

CMDSTREl mandato de QMF que debe ejecutarse; una serie de caracteres enmayúsculas de la longitud especificada por CMDLTH.

PNUMEl número de palabras clave de mandato o áreas de rastreo; un parámetro deentero.

KLTHLa longitud de cada palabra clave o título de rastreo especificado; unparámetro de entero o matriz de parámetros.

186 Developing DB2 QMF applications

|||

||

||

Page 199: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

KWORDPalabra clave, palabras clave o dirección de títulos de rastreo de QMF; uncarácter, una matriz de direcciones para rastrear los títulos cuyas longitudesvienen especificadas por KLTH.

Puede utilizar una matriz de caracteres si todas las palabras clave tienen lamisma longitud. Las palabras clave deben estar en un almacenamientocontiguo y deben separarse con ningún delimitador especial.

VLTHLa longitud de cada valor que está asociado con la palabra clave o título derastreo; un parámetro de entero o matriz de parámetros.

VALUEEl valor que está asociado con cada palabra clave o la dirección de un valorque está asociado con un título de rastreo.

Su tipo se especifica en el parámetro VTYPE y puede ser un carácter, matriz decaracteres, parámetro de entero o matriz de parámetros. Para los datos derastreo, VTYPE debe ser FINT. Si tiene valores de carácter, los valores debenser contiguos y no deben separarse con ningún delimitador especial.

VTYPEEl tipo de datos del contenido del parámetro VALUE.

Este parámetro tiene uno de dos valores, que se suministran en el área decomunicaciones, DSQCOMMF:v DSQ_VARIABLE_CHAR para valores de carácterv DSQ_VARIABLE_FINT para valores enteros

Todos los valores que se especifican en el campo VALUE deben tener el tipo dedatos que se especifica en VTYPE.

Ejemplo de programación de FortranEl programa de ejemplo, DSQABFF, se proporciona con QMF. El programa deejemplo es un miembro de la biblioteca QMF1110.SDSQSAPn (donde n es unidentificador de idioma nacional).

El programa de ejemplo de la interfaz invocable Fortran realiza las siguientesfunciones:v Inician QMFv Establecen tres variables globalesv Ejecutan una consulta denominada Q1v Imprimen el informe de resultados utilizando el formulario F1v Finalizan la sesión de QMF

QMF no proporciona el formulario Q1 ni la consulta Q1, pero el programa deejemplo utiliza estos objetos.C***********************************************************************C Programa de ejemplo: DSQABFFC Versión FORTRAN de interfaz invocable de gestor QMFCC Fecha de creación: 11/21/89CC ENVIRONMENT: API IN FORTRANC***********************************************************************CC Procesamiento:C a. Iniciar una sesión del gestor de consultas utilizando la interfaz invocable.

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 187

|||

|||

||

||

||||

Page 200: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

CC b. Establecer variables numéricas del gestor de consultas.CC d. Ejecutar una consulta del gestor de consultas utilizando la interfaz invocable.CC e. Imprimir un informe utilizando la interfaz invocable.CC f. Salir de la sesión del gestor de consultas.CC Requisitos previos:1. Crear la base de datos de ejemplos.CC 2. Crear una consulta asistida, Q1, que tenga una sentencia SELECTCC 3. Crear un formulario, F1, que muestre datos para la consulta Q1.CC***********************************************************************

PROGRAM DSQABFFC***********************************************************************C Incluir y declarar el área de comunicaciones de la interfaz de consultaC***********************************************************************

INCLUDE (DSQCOMMF)

C**********************************************************************C Mantos y longitudes del mandato de la interfaz de consultasC**********************************************************************

INTEGER COMMAND_LENGTHCHARACTER START_QUERY_INTERFACE*5,+ SET_GLOBAL_VARIABLES*10,+ RUN_QUERY*12,+ PRINT_REPORT*22,+ END_QUERY_INTERFACE*4

C**********************************************************************C Extensión de mandato de consulta, número de parámetros y longitudesC**********************************************************************

INTEGER NUMBER_OF_PARAMETERS,+ KEYWORD_LENGTHS(10),+ DATA_LENGTHS(10)

C**********************************************************************C Constantes de tipo de datos de variablesC**********************************************************************

CHARACTER CHAR_DATA_TYPE*4,+ INT_DATA_TYPE*4

C**********************************************************************C Parámetro de palabra clave y valor del mandato STARTC**********************************************************************

CHARACTER*8 START_KEYWORDS(1)CHARACTER*11 START_KEYWORD_VALUES(1)

C**********************************************************************C Parámetro de palabra clave y valores de mandato SETC**********************************************************************

CHARACTER SET_KEYWORDS(19)CHARACTER SET_KEYWORD_1*7,+ SET_KEYWORD_2*5,+ SET_KEYWORD_3*7

EQUIVALENCE (SET_KEYWORDS( 1), SET_KEYWORD_1),+ (SET_KEYWORDS( 8), SET_KEYWORD_2),+ (SET_KEYWORDS(13), SET_KEYWORD_3)

CHARACTER SET_VALUES(12)INTEGER*4 SET_VALUE_1,+ SET_VALUE_2,+ SET_VALUE_3

188 Developing DB2 QMF applications

Page 201: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

EQUIVALENCE (SET_VALUES(1), SET_VALUE_1),+ (SET_VALUES(5), SET_VALUE_2),+ (SET_VALUES(9), SET_VALUE_3)

C***********************************************************************C Declarar longitud de mandato y variables de código de retornoC***********************************************************************

INTEGER LEN,+ RC

C***********************************************************************C InicializaciónC***********************************************************************

DATA START_QUERY_INTERFACE /’START’ /DATA SET_GLOBAL_VARIABLES /’SET GLOBAL’ /DATA RUN_QUERY /’RUN QUERY Q1’ /DATA PRINT_REPORT /’PRINT REPORT (FORM=F1)’/DATA END_QUERY_INTERFACE /’EXIT’ /

DATA CHAR_DATA_TYPE /DSQ_VARIABLE_CHAR /DATA INT_DATA_TYPE /DSQ_VARIABLE_FINT /

C**********************************************************C Iniciar sesión de consultaC**********************************************************

DSQ_COMM_LEVEL = DSQ_CURRENT_COMM_LEVELNUMBER_OF_PARAMETERS = 1COMMAND_LENGTH = LEN(START_QUERY_INTERFACE)KEYWORD_LENGTHS(1) = LEN(START_KEYWORDS(1))DATA_LENGTHS(1) = LEN(START_KEYWORD_VALUES(1))START_KEYWORDS(1) = ’DSQSMODE’START_KEYWORD_VALUES(1) = ’INTERACTIVE’

RC = DSQCIFE(DSQCOMM,+ COMMAND_LENGTH,+ START_QUERY_INTERFACE,+ NUMBER_OF_PARAMETERS,+ KEYWORD_LENGTHS,+ START_KEYWORDS,+ DATA_LENGTHS,+ START_KEYWORD_VALUES,+ CHAR_DATA_TYPE)

C**********************************************************************C Establecer valores numéricos en consulta utilizando mandato SETC**********************************************************************

NUMBER_OF_PARAMETERS = 3COMMAND_LENGTH = LEN(SET_GLOBAL_VARIABLES)SET_KEYWORD_1 = ’MYVAR01’SET_KEYWORD_2 = ’SHORT’SET_KEYWORD_3 = ’MYVAR03’KEYWORD_LENGTHS(1) = LEN(SET_KEYWORD_1)KEYWORD_LENGTHS(2) = LEN(SET_KEYWORD_2)KEYWORD_LENGTHS(3) = LEN(SET_KEYWORD_3)DATA_LENGTHS(1) = 4DATA_LENGTHS(2) = 4DATA_LENGTHS(3) = 4SET_VALUE_1 = 20SET_VALUE_2 = 40SET_VALUE_3 = 84

RC = DSQCIFE(DSQCOMM,+ COMMAND_LENGTH,+ SET_GLOBAL_VARIABLES,+ NUMBER_OF_PARAMETERS,

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 189

Page 202: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

+ KEYWORD_LENGTHS,+ SET_KEYWORDS,+ DATA_LENGTHS,+ SET_VALUES,+ INT_DATA_TYPE)

C**********************************************************************C Ejecutar una consultaC**********************************************************************

COMMAND_LENGTH = LEN(RUN_QUERY)RC = DSQCIF(DSQCOMM,+ COMMAND_LENGTH,+ RUN_QUERY)

C**********************************************************************C Imprimir los resultados de la consultaC**********************************************************************

COMMAND_LENGTH = LEN(PRINT_REPORT)RC = DSQCIF(DSQCOMM,+ COMMAND_LENGTH,+ PRINT_REPORT)

C**********************************************************************C Finalizar la sesión de la interfaz de consultaC**********************************************************************

COMMAND_LENGTH = LEN(END_QUERY_INTERFACE)RC = DSQCIF(DSQCOMM,+ COMMAND_LENGTH,+ END_QUERY_INTERFACE)

FIN

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

DSQCOMM para FortranEl archivo del área de comunicaciones de la interfaz para el lenguaje Fortran sedenomina DSQCOMMF.

El archivo de inclusión DSQCOMMF aquí mostrado se suministra con QMF:C**********************************************************************C Archivo de inclusión de FORTRAN para la interfaz invocableC**********************************************************************C Códigos de retorno

INTEGER DSQ_SUCCESS, DSQ_WARNING, DSQ_FAILURE, DSQ_SEVEREPARAMETER(+ DSQ_SUCCESS = 0,+ DSQ_WARNING = 4,+ DSQ_FAILURE = 8,+ DSQ_SEVERE = 16)

C Nivel de comunicacionesCHARACTER DSQ_CURRENT_COMM_LEVEL*12PARAMETER(+ DSQ_CURRENT_COMM_LEVEL = ’DSQL>001002<’)

C Query product IDsCHARACTER DSQ_QRW*2, DSQ_QMF*2, DSQ_QM4*2PARAMETER(+ DSQ_QRW = ’01’,+ DSQ_QMF = ’02’,

190 Developing DB2 QMF applications

Page 203: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

+ DSQ_QM4 = ’03’)

C Niveles de release del producto de consultaCHARACTER DSQ_QRW_V1R2*2, DSQ_QRW_V1R3*2,+ DSQ_QMF_V2R4*2, DSQ_QMF_V3R1*2,+ DSQ_QMF_V3R1M1*2, DSQ_QMF_V3R2*2,+ DSQ_QMF_V3R3*2, DSQ_QMF_V6R1*2,+ DSQ_QMF_V7R1*2, DSQ_QM4_V1R1*2,+ DSQ_QMF_V7R2*2, DSQ_QMF_V8R1*2,+ DSQ_QMF_V9R1*2, DSQ_QMF_V10R1*2PARAMETER(+ DSQ_QRW_V1R2 = ’01’,+ DSQ_QRW_V1R3 = ’02’,+ DSQ_QMF_V2R4 = ’01’,+ DSQ_QMF_V3R1 = ’02’,+ DSQ_QMF_V3R1M1 = ’03’,+ DSQ_QMF_V3R2 = ’04’,+ DSQ_QMF_V3R3 = ’05’,+ DSQ_QMF_V6R1 = ’06’,+ DSQ_QMF_V7R1 = ’07’,+ DSQ_QM4_V1R1 = ’01’,+ DSQ_QMF_V7R2 = ’08’,+ DSQ_QMF_V8R1 = ’09’,+ DSQ_QMF_V9R1 = ’10’,+ DSQ_QMF_V10R1 = ’11’)

C Tipos de variable de hostCHARACTER DSQ_VARIABLE_CHAR*4, DSQ_VARIABLE_FINT*4PARAMETER(+ DSQ_VARIABLE_CHAR = ’CHAR’,+ DSQ_VARIABLE_FINT = ’FINT’)

C Indicador de cancelaciónCHARACTER DSQ_CANCEL_YES, DSQ_CANCEL_NOPARAMETER(+ DSQ_CANCEL_YES = ’1’,+ DSQ_CANCEL_NO = ’0’)CHARACTER DSQCOMM(512)INTEGER DSQ_RETURN_CODE, DSQ_INSTANCE_IDCHARACTER DSQ_COMM_LEVEL*12,+ DSQ_PRODUCT*2,+ DSQ_PRODUCT_RELEASE*2,+ DSQ_RESERVE1*28,+ DSQ_MESSAGE_ID*8,+ DSQ_Q_MESSAGE_ID*8,+ DSQ_START_PARM_ERROR*8,+ DSQ_CANCEL_IND*1,+ DSQ_RESERVE2*23,+ DSQ_RESERVE3*156,+ DSQ_MESSAGE_TEXT*128,+ DSQ_Q_MESSAGE_TEXT*128

EQUIVALENCE (DSQCOMM( 1), DSQ_RETURN_CODE ),+ (DSQCOMM( 5), DSQ_INSTANCE_ID ),+ (DSQCOMM( 9), DSQ_COMM_LEVEL ),+ (DSQCOMM(21), DSQ_PRODUCT ),+ (DSQCOMM(23), DSQ_PRODUCT_RELEASE ),+ (DSQCOMM(25), DSQ_RESERVE1 ),+ (DSQCOMM(53), DSQ_MESSAGE_ID ),+ (DSQCOMM(61), DSQ_Q_MESSAGE_ID ),+ (DSQCOMM(69), DSQ_START_PARM_ERROR ),+ (DSQCOMM(77), DSQ_CANCEL_IND ),+ (DSQCOMM(78), DSQ_RESERVE2 ),+ (DSQCOMM(101), DSQ_RESERVE3 ),+ (DSQCOMM(257), DSQ_MESSAGE_TEXT ),+ (DSQCOMM(385), DSQ_Q_MESSAGE_TEXT )

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 191

Page 204: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

C Interfaz invocable normal y llamadas ampliadasEXTERNAL DSQCIFEXTERNAL DSQCIFE

Ejecución de programas FortranPara ejecutar el programa Fortran en TSO, compile y edite el enlace del programay, a continuación, ejecútelo con o sin ISPF.

Compilación y edición de enlaces del programaDebe compilar y editar los enlaces del programa Fortran antes de ejecutarlo enTSO.

Para ejecutar el editor de enlace y el compilador Fortran, JCL utiliza el compiladorFortran de z/OS. Es posible que algunos parámetros cambien de una instalaciónde QMF a la siguiente.

El JCL en este ejemplo no se proporciona con QMF, pero puede copiarlo desdeaquí, modificándolo para que se adapte a sus necesidades.//samFORT JOB//STEP1 EXEC PROC=VSF2CL//* Proporcionar acceso a DSQCOMM - macro de comunicaciones de QMF//FORT.SYSLIB DD DSN=QMF1110.SAMPLIB,DISP=SHR//FORT.SYSIN DD *

.

.

.El programa o copia de DSQABFF de ejemplo de QMF...

/*//* Proporcionar acceso a módulo de interfaz de QMF//* Asignación de la biblioteca de destino//LKED.SYSLMOD DD//* Asignación de la librería de carga de QMF//LKED.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR//LKED.SYSIN DD *

INCLUDE QMFLOAD(DSQCIF)INCLUDE QMFLOAD(DSQCIFE)ENTRY samFORTMODE AMODE(31) RMODE(31)NAME samFORT(R)

/*

Ejecución de programas en TSO sin ISPFDespués de que el programa Fortran se compile satisfactoriamente, puedeejecutarlo en JCL sin ISPF.

El JCL en este ejemplo no se proporciona con QMF, pero puede copiarlo desdeaquí, modificándolo para que se adapte a sus necesidades.

El programa aquí mostrado ejecuta la aplicación de interfaz invocable utilizando elcompilador Fortran. Es posible que algunos parámetros cambien de una instalaciónde QMF a la siguiente:PROC 0CONTROL ASIS/************************************************************//* Nota: Las librerías de carga QMF, DB2, GDDM y FORTRAN deben *//* asignarse antes de ejecutar esta CLIST. *//* El nombre de la librería de carga de QMF es"QMF1110.SDSQLOAD". */

192 Developing DB2 QMF applications

Page 205: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/************************************************************//* Especif. lst. atributos para asignaciones conjunto datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE/************************************************************//* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa utilizando el mandato CALL de TSO *//************************************************************/CALL samFORTEXIT CODE(0)

Ejecución en TSO bajo ISPFDespués de que el programa Fortran se compile satisfactoriamente, podráejecutarlo bajo ISPF.

La CLIST de este ejemplo no se suministra con QMF, pero puede copiarla desdeaquí, modificándola para que se adapte a sus necesidades.

La CLIST aquí mostrada ejecuta la aplicación de interfaz invocable utilizando elcompilador Fortran. Es posible que algunos parámetros cambien de una instalaciónde QMF a la siguiente:PROC 0CONTROL ASIS/************************************************************//* Especif. lst. atributos para asignaciones conjunto datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’,’ISR.ISRCLIB’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos utilizados por ISPF *//************************************************************/ALLOC FI(ISPLLIB) SHR REUSE +

DA(’QMF1110.SDSQLOAD’,’ADM.GDDMLOAD’,’DSN.DSNEXIT’,’DSN.DSNLOAD’, +

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 193

Page 206: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

’PRDUCT.VSF2LOAD’)ALLOC FI(ISPMLIB) SHR REUSE +

DA(’QMF1110.SDSQMLBE’,’ISR.ISRMLIB’,’ISP.ISPMLIB’)ALLOC FI(ISPPLIB) SHR REUSE +

DA(’QMF1110.SDSQPLBE’,’ISR.ISRPLIB’,’ISP.ISPPLIB’)ALLOC FI(ISPSLIB) SHR REUSE +

DA(’QMF1110.SDSQSLBE’,’ISR.ISRSLIB’,’ISP.ISPSLIB’)ALLOC FI(ISPTLIB) SHR REUSE +

DA(’ISR.ISRTLIB’,’ISP.ISPTLIB’)/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE/************************************************************//* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa como diálogo ISPF inicial *//************************************************************/ISPSTART PGM(samFORT) NEWAPPL(DSQE)EXIT CODE(4)

La sentencia EXIT CODE(4) suprime la visualización del panel de eliminación deISPF.

Interfaz de lenguaje PL/IPuede utilizar el lenguaje PL/I con la interfaz invocable en QMF.

Correlación del área de comunicaciones de la interfaz de PL/I(DSQCOMML)

DSQCOMML proporciona la correlación de DSQCOMM de PL/I y se suministracon QMF.

La tabla muestra los valores de DSQCOMML.

194 Developing DB2 QMF applications

Page 207: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 48. Área de comunicaciones de la interfaz de PL/I (DSQCOMML)

Nombre de la estructura Tipo de datos Descripción

DSQ_RETURN_CODE FIXED BIN(31) Indica el estado de un mandato de QMF después de suejecución

Sus valores son:

DSQ_SUCCESSEjecución satisfactoria de la solicitud

DSQ_WARNINGTerminación normal con avisos

DSQ_FAILUREEl mandato no se ha ejecutado correctamente

DSQ_SEVEREError grave; la sesión de QMF ha terminado

DSQ_INSTANCE_ID FIXED BIN(31) Identificador establecido por QMF durante la ejecucióndel mandato START

DSQ_COMM_LEVEL CHAR(12) Identifica el nivel del área de comunicaciones deDSQCOMM

En la aplicación, incluya instrucciones que inicialicenesta variable con el valorDSQ_CURRENT_COMM_LEVEL antes de emitir elmandato START de QMF.

DSQ_PRODUCT CHAR(2)Identifica el producto de la consulta de IBM que se estáutilizando. Las variables que empiezan por DSQ_QMFespecifican versiones de QMF para TSO y CICS.

DSQ_PRODUCT_RELEASE CHAR(2) Nivel de release de QMF en uso. La variableDSQ_QMF_V10R1 especifica QMF Versión 11 Release 1.

DSQ_RESERVE1 CHAR(28) Reservado para uso en el futuro

DSQ_MESSAGE_ID CHAR(8) ID de mensaje de finalización

DSQ_Q_MESSAGE_ID CHAR(8) ID de mensaje de consulta

DSQ_START_PARM_ERROR CHAR(8) Parámetro erróneo cuando ha fallado STAT debido a unerror de parámetro

DSQ_CANCEL_IND CHAR(1) Contiene uno de dos valores, en función de si el usuarioha cancelado mientras se estaba ejecutando un mandatode QMF:

v DSQ_CANCEL_YES

v DSQ_CANCEL_NO

DSQ_RESERVE2 CHAR(23) Reservado para uso en el futuro

DSQ_RESERVE3 CHAR(156) Reservado para uso en el futuro

DSQ_MESSAGE_TEXT CHAR(128) Texto de mensaje de finalización

DSQ_Q_MESSAGE_TEXT CHAR(128) Texto de mensaje de consulta

Llamadas a función para PL/IQMF proporciona dos llamadas a función para PL/I: DSQCIPL y DSQCIPX.Ambas llamadas se describen en el área de comunicaciones (DSQCOMML).

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 195

Page 208: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

La sintaxis DSQCIPL

Esta llamada es para mandatos de QMF que no necesiten acceder a variables delprograma de aplicación. Utilice esta llamada para la mayoría de mandatos deQMF.CALL DSQCIPL(DSQCOMM,

CMDLTH,CMDSTR)

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz.

CMDLTHLa longitud de la serie de mandato (CMDSTR).

CMDSTREl mandato de QMF que debe ejecutarse; una serie de caracteres enmayúsculas de la longitud especificada por CMDLTH.

Sintaxis de DSQCIPX

Esta llamada es para mandatos que necesitan acceder a variables del programa deaplicación: START, TRACE y los formatos ampliados de GET GLOBAL y SETGLOBAL.

La sintaxis de la llamada es:CALL DSQCIPX(DSQCOMM,

CMDLTH,CMDSTR,PNUM,KLTH,KWORD,VLTH,VALUE,VTYPE)

Los parámetros tienen los siguientes valores:

DSQCOMMEl área de comunicaciones de la interfaz.

CMDLTHLa longitud de la serie de mandato (CMDSTR); un parámetro FIXED BIN(31)entero.

CMDSTREl mandato de QMF que debe ejecutarse; una serie de caracteres enmayúsculas de la longitud especificada por CMDLTH.

PNUMEl número de palabras clave del mandato o áreas de rastreo; un parámetroFIXED BIN(31) entero.

KLTHLa longitud de cada palabra clave o título de rastreo especificados; unparámetro o matriz de parámetros FIXED BIN(31) enteros.

KWORDLa palabra clave, palabras clave o dirección de títulos de rastreo de QMF.

196 Developing DB2 QMF applications

|||

||

||

|

Page 209: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Cada una es un carácter, matriz de caracteres o matriz de direcciones pararastrear títulos cuyas longitudes vienen especificadas por KLTH. Puede utilizaruna matriz de caracteres si todas las palabras clave tienen la misma longitud.Las palabras clave deben almacenarse de forma contigua y no deben separarsecon ningún delimitador especial.

VLTHLa longitud de cada valor que se asocia con la palabra clave o título de rastreo;un parámetro de entero FIXED BIN(31) o matriz de parámetros.

VALUEEl valor que está asociado con cada palabra clave o la dirección de un valorque está asociado con un título de rastreo.

Su tipo se especifica en el parámetro VTYPE y puede ser un carácter, matriz decaracteres, parámetro FIXED BIN(31) de entero o matriz de parámetros. Si tienevalores de carácter, los valores deben ser contiguos y no deben separarse conningún delimitador especial.

VTYPEEl tipo de datos del contenido del parámetro VALUE.

Este parámetro tiene uno de dos valores, que se indican en el área decomunicaciones DSQCOMML:v DSQ_VARIABLE_CHAR para valores de carácterv DSQ_VARIABLE_FINT para valores FIXED BIN(31) de entero

Todos los valores que se especifican en el campo VALUE deben tener el tipo dedatos que se especifica en VTYPE.

Ejemplo de programación de PL/IEl programa de ejemplo, DSQABFP, se suministra con QMF y utiliza PL/I. Elprograma de ejemplo es un miembro de la biblioteca QMF1110.SDSQSAPn (donden es un identificador de idioma nacional).

El programa de ejemplo de la interfaz invocable del lenguaje PL/I realiza lassiguientes funciones:v Inician QMFv Establecen tres variables globalesv Ejecutan una consulta denominada Q1v Imprimen el informe de resultados utilizando el formulario F1v Finalizan la sesión de QMF

QMF no proporciona el formulario Q1 ni la consulta Q1, pero el programa deejemplo utiliza estos objetos.DSQABFP: PROCEDURE OPTIONS(MAIN REENTRANT) REORDER;/********************************************************************//* Programa de ejemplo: DSQABFP *//* Versión de PL/I de la interfaz invocable de QMF *//********************************************************************/

/********************************************************************//* Incluir y declarar área de comun. de interfaz de consulta *//********************************************************************/%INCLUDE SYSLIB(DSQCOMML);

/********************************************************************//* Función incorporada *//********************************************************************/

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 197

|||||

||

||||

Page 210: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DCL LENGTH BUILTIN;

/********************************************************************//* Mandatos y longitud de mandato de interfaz de consulta *//********************************************************************/DCL COMMAND_LENGTH FIXED BIN(31);DCL START_QUERY_INTERFACE CHAR(5) INIT(’START’);DCL SET_GLOBAL_VARIABLES CHAR(10) INIT(’SET GLOBAL’);DCL RUN_QUERY CHAR(12) INIT(’RUN QUERY Q1’);DCL PRINT_REPORT CHAR(22) INIT(’PRINT REPORT (FORM=F1)’);DCL END_QUERY_INTERFACE CHAR(4) INIT(’EXIT’);

/********************************************************************//* Extensión de mandato de consulta, núm. de parámetros y longitudes*//********************************************************************/DCL NUMBER_OF_PARAMETERS FIXED BIN(31);/* number of variables */DCL KEYWORD_LENGTHS(10) FIXED BIN(31);/* lengths of keyword names*/DCL DATA_LENGTHS(10) FIXED BIN(31);/* lengths of variable data*/

/********************************************************************//* Parámetro de palabra clave y valor de mandato START *//********************************************************************/DCL START_KEYWORDS CHAR(8) INIT(’DSQSMODE’);DCL START_KEYWORD_VALUES CHAR(11) INIT(’INTERACTIVE’);

/********************************************************************//* Parámetro de palabra clave y valor de mandato SET *//********************************************************************/DCL 1 SET_KEYWORDS,

3 SET_KEYWORDS_1 CHAR(7) INIT(’MYVAR01’),3 SET_KEYWORDS_2 CHAR(5) INIT(’SHORT’),3 SET_KEYWORDS_3 CHAR(7) INIT(’MYVAR03’);

DCL 1 SET_VALUES,3 SET_VALUES_1 FIXED BIN(31),3 SET_VALUES_2 FIXED BIN(31),3 SET_VALUES_3 FIXED BIN(31);

/********************************************************************//* Programa principal *//********************************************************************/DSQCOMM = ’’;DSQ_COMM_LEVEL = DSQ_CURRENT_COMM_LEVEL;

/********************************************************************//* Iniciar una sesión de interfaz de consulta *//********************************************************************/NUMBER_OF_PARAMETERS = 1;COMMAND_LENGTH = LENGTH(START_QUERY_INTERFACE);KEYWORD_LENGTHS(1) = LENGTH(START_KEYWORDS);DATA_LENGTHS(1) = LENGTH(START_KEYWORD_VALUES);

CALL DSQCIPX(DSQCOMM,COMMAND_LENGTH,START_QUERY_INTERFACE,NUMBER_OF_PARAMETERS,KEYWORD_LENGTHS,START_KEYWORDS,DATA_LENGTHS,START_KEYWORD_VALUES,DSQ_VARIABLE_CHAR);

/********************************************************************//* Establecer valores numéricos en consulta utilizando mandato SET *//********************************************************************/NUMBER_OF_PARAMETERS = 3;COMMAND_LENGTH = LENGTH(SET_GLOBAL_VARIABLES);

198 Developing DB2 QMF applications

Page 211: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

KEYWORD_LENGTHS(1) = LENGTH(SET_KEYWORDS_1);KEYWORD_LENGTHS(2) = LENGTH(SET_KEYWORDS_2);KEYWORD_LENGTHS(3) = LENGTH(SET_KEYWORDS_3);DATA_LENGTHS(1) = 4;DATA_LENGTHS(2) = 4;DATA_LENGTHS(3) = 4;SET_VALUES_1 = 20;SET_VALUES_2 = 40;SET_VALUES_3 = 84;

CALL DSQCIPX(DSQCOMM,COMMAND_LENGTH,SET_GLOBAL_VARIABLES,NUMBER_OF_PARAMETERS,KEYWORD_LENGTHS,SET_KEYWORDS,DATA_LENGTHS,SET_VALUES,DSQ_VARIABLE_FINT);

/********************************************************************//* Ejecutar una consulta *//********************************************************************/COMMAND_LENGTH = LENGTH(RUN_QUERY);

CALL DSQCIPL(DSQCOMM,COMMAND_LENGTH,RUN_QUERY);

/********************************************************************//* Imprimir los resultados de la consulta *//********************************************************************/COMMAND_LENGTH = LENGTH(PRINT_REPORT);

CALL DSQCIPL(DSQCOMM,COMMAND_LENGTH,PRINT_REPORT);

/********************************************************************//* Finalizar la sesión de la interfaz de consulta *//********************************************************************/COMMAND_LENGTH = LENGTH(END_QUERY_INTERFACE);

CALL DSQCIPL(DSQCOMM,COMMAND_LENGTH,END_QUERY_INTERFACE);

END DSQABFP;

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

DSQCOMM para PL/IEl área de comunicaciones de la interfaz para PL/I se llama DSQCOMML./********************************************************************//* Inclusión de PL/I para la interfaz invocable de consulta *//********************************************************************/

/* Declaración de estructura para área de comunicaciones */DCL1 DSQCOMM,

3 DSQ_RETURN_CODE FIXED BIN(31), /* Código retorno func. */

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 199

Page 212: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

3 DSQ_INSTANCE_ID FIXED BIN(31), /* ID de inicio */3 DSQ_COMM_LEVEL CHAR(12), /* Nivel comunicaciones */3 DSQ_PRODUCT CHAR(2), /* ID producto consulta */3 DSQ_PRODUCT_RELEASE CHAR(2), /* Release prod. consulta*/3 DSQ_RESERVE1 CHAR(28), /* Reservado */3 DSQ_MESSAGE_ID CHAR(8), /* ID mensaje finaliz. */3 DSQ_Q_MESSAGE_ID CHAR(8), /* ID mensaje consulta */3 DSQ_START_PARM_ERROR CHAR(8), /* Inicio parám. en error*/3 DSQ_CANCEL_IND CHAR(1), /* Indicador cancel. Cmd */

/* 1 = cancelado, 0 = no cancelado */3 DSQ_RESERVE2 CHAR(23), /* Reservado */3 DSQ_RESERVE3 CHAR(156), /* Reservado */3 DSQ_MESSAGE_TEXT CHAR(128), /* Mensaje mandato QMF */3 DSQ_Q_MESSAGE_TEXT CHAR(128); /* Mensaje consulta QMF */

/* Códigos de retorno */DCL

DSQ_SUCCESS FIXED BIN(31) INIT(0) STATIC,DSQ_WARNING FIXED BIN(31) INIT(4) STATIC,DSQ_FAILURE FIXED BIN(31) INIT(8) STATIC,DSQ_SEVERE FIXED BIN(31) INIT(16) STATIC;

/* Nivel de comunicaciones */DCL

DSQ_CURRENT_COMM_LEVEL CHAR(12) INIT(’DSQL>001002<’) STATIC;

/* ID de producto de consulta */DCL

DSQ_QRW CHAR(2) INIT(’01’) STATIC,DSQ_QMF CHAR(2) INIT(’02’) STATIC,DSQ_QM4 CHAR(2) INIT(’03’) STATIC;

/* ID de release de producto de consulta */DCL

DSQ_QRW_V1R2 CHAR(2) INIT(’01’) STATIC,DSQ_QRW_V1R3 CHAR(2) INIT(’02’) STATIC,DSQ_QMF_V2R4 CHAR(2) INIT(’01’) STATIC,DSQ_QMF_V3R1 CHAR(2) INIT(’02’) STATIC,DSQ_QMF_V3R1M1 CHAR(2) INIT(’03’) STATIC,DSQ_QMF_V3R2 CHAR(2) INIT(’04’) STATIC,DSQ_QMF_V3R3 CHAR(2) INIT(’05’) STATIC,DSQ_QMF_V6R1 CHAR(2) INIT(’06’) STATIC,DSQ_QMF_V7R1 CHAR(2) INIT(’07’) STATIC,DSQ_QM4_V1R1 CHAR(2) INIT(’01’) STATIC,DSQ_QMF_V7R2 CHAR(2) INIT(’08’) STATIC,DSQ_QMF_V8R1 CHAR(2) INIT(’09’) STATIC,DSQ_QMF_V9R1 CHAR(2) INIT(’10’) STATIC,DSQ_QMF_V10R1 CHAR(2) INIT(’11’) STATIC;

/* Indicador cancelado */DCL

DSQ_CANCEL_YES CHAR(1) INIT(’1’) STATIC,DSQ_CANCEL_NO CHAR(1) INIT(’0’) STATIC;

/* Tipos de variable */DCL

DSQ_VARIABLE_CHAR CHAR(4) INIT(’CHAR’) STATIC,DSQ_VARIABLE_FINT CHAR(4) INIT(’FINT’) STATIC;

/* Modalidad */DCL

DSQ_INTERACTIVE CHAR(1) INIT(’1’) STATIC,DSQ_BATCH CHAR(1) INIT(’2’) STATIC;

/* Sí o no */DCL

DSQ_YES CHAR(1) INIT(’1’) STATIC,

200 Developing DB2 QMF applications

Page 213: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

DSQ_NO CHAR(1) INIT(’2’) STATIC;

/* Punto de entrada de interfaz de consulta */DCL

DSQCIPL ENTRY (*, /* Bloque de interfaz */FIXED BIN(31), /* Longitud de mandato */CHAR(*)) /* Serie de mandato */EXTERNAL OPTIONS(ASSEMBLER);

DCLDSQCIPX ENTRY (*, /* Bloque de interfaz */

FIXED BIN(31), /* Longitud de mandato */CHAR(*), /* Serie de mandato */FIXED BIN(31), /* # palabras clave mand.*/*, /* Longitud palabra clave*/*, /* Serie palabra clave */*, /* Longitud de valor */*, /* Valor de palabra clave*/CHAR(4)) /* Tipo de datos de valor*/EXTERNAL OPTIONS(ASSEMBLER);

Ejecución de programas bajo CICSDespués de escribir el programa en PL/I, deberá compilarlo y ejecutarlo.

Al traducir, compilar y editar los enlaces de un programa que utiliza la interfazinvocable de QMF, tenga en cuenta las siguientes condiciones:v El área de comunicaciones (DSQCOMML) debe estar disponible en el paso de

compilación o debe haberse copiado en el programa.v Los módulos de interfaz de QMF DSQCIPL y DSQCIPX deben estar disponibles

durante el paso de edición de enlaces del programa.

Este ejemplo utiliza el procedimiento DFHVITVL proporcionado con CICS. EsteJCL no se suministra con QMF, pero puede copiarlo y modificarlo para que seadapte a sus necesidades.//samPLI JOB// EXEC PROC=DFHVITVL//PLI.SYSIN DD *...El programa o copia de DSQABFP de ejemplo de QMF.../*//* Proporciona acceso a DSQCOMML - macro de comunicaciones de QMF//PLI.SYSLIB DD DSN=QMF1110.SDSQSAPE,DISP=SHR//* Proporcionar acceso a módulo de interfaz de QMF//* Asignación de la biblioteca de destino//LKED.SYSLMOD DD//* Asignación de la librería de carga de QMF//LKED.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR//LKED.SYSIN DD *INCLUDE QMFLOAD(DSQCIPL)INCLUDE QMFLOAD(DSQCIPX)MODE AMODE(31) RMODE(31)NAME sampPLI(R)/*

Ejecución de programas bajo TSOPara ejecutar el programa PL/I en TSO, compile y edite el enlace del programa y, acontinuación, ejecútelo con o sin ISPF.

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 201

Page 214: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Compilación y edición de enlaces en TSODebe compilar y editar los enlaces del programa PL/I antes de ejecutarlo en TSO.

Este JCL utiliza el compilador PL/I para compilar la aplicación de interfazinvocable y, a continuación, edita los enlaces de la aplicación. Algunos parámetrospueden cambiar de una instalación de QMF a la siguiente.//samPLI JOB//STEP1 EXEC PROC=IBMZCPL//* Proporcionar acceso a DSQCOMML - macro de comunicaciones de QMF//PLI.SYSLIB DD DSN=QMF1110.SAMPLIB,DISP=SHR//PLI.SYSIN DD *...El programa o copia de DSQABFP de ejemplo de QMF...//* Asignación de la biblioteca de destino//LKED.SYSLMOD DD//* Asignación de la librería de carga de QMF//LKED.QMFLOAD DD DSN=QMF1110.SDSQLOAD,DISP=SHR//LKED.SYSIN DD *INCLUDE QMFLOAD(DSQCIPL)INCLUDE QMFLOAD(DSQCIPX)ENTRY CEESTARTMODE AMODE(31) RMODE(ANY)NAME sampPLI(R)/*

Ejecución en TSO sin ISPFDespués de ensamblar el programa PL/I satisfactoriamente, puede ejecutarlo sinISPF.

Ejecute el programa en TSO sin ISPF escribiendo un programa parecido a la CLISTaquí mostrada:PROC 0CONTROL ASIS/************************************************************//* Nota: Las librerías de carga de QMF, DB2, GDDM y PL/I deben *//* asignarse antes de ejecutar esta CLIST. *//* El nombre de la librería de carga de QMF es"QMF1110.SDSQLOAD". *//************************************************************//* Especif. lst. atributos para asignaciones conjunto datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE/************************************************************/

202 Developing DB2 QMF applications

Page 215: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa utilizando el mandato CALL de TSO *//************************************************************/CALL sampPLIEXIT CODE(0)

Ejecución en TSO bajo ISPFDespués de ensamblar el programa PL/I satisfactoriamente, puede ejecutarlo bajoISPF.

Ejecute el programa en TSO bajo ISPF escribiendo un programa parecido a laCLIST aquí mostrada:PROC 0CONTROL ASIS/************************************************************//* Especif. lst. atributos para asignaciones conjunto datos *//************************************************************/ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)/************************************************************//* Conjuntos de datos utilizados por TSO *//************************************************************/ALLOC FI(SYSPROC) DA(’QMF1110.SDSQCLTE’,’ISR.ISRCLIB’)ALLOC FI(SYSEXEC) DA(’QMF1110.SDSQEXCE’)/************************************************************//* Conjuntos de datos utilizados por ISPF *//************************************************************/ALLOC FI(ISPLLIB) SHR REUSE +

DA(’QMF1110.SDSQLOAD’,’ADM.GDDMLOAD’,’DSN.DSNEXIT’,’DSN.DSNLOAD’, +’PLI.PLILINK’,’PLI.SIBMLINK’)

ALLOC FI(ISPMLIB) SHR REUSE +DA(’QMF1110.SDSQMLBE’,’ISR.ISRMLIB’,’ISP.ISPMLIB’)

ALLOC FI(ISPPLIB) SHR REUSE +DA(’QMF1110.SDSQPLBE’,’ISR.ISRPLIB’,’ISP.ISPPLIB’)

ALLOC FI(ISPSLIB) SHR REUSE +DA(’QMF1110.SDSQSLBE’,’ISR.ISRSLIB’,’ISP.ISPSLIB’)

ALLOC FI(ISPTLIB) SHR REUSE +DA(’ISR.ISRTLIB’,’ISP.ISPTLIB’)

/************************************************************//* Conjuntos de datos QMF/GDDM *//************************************************************/ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSEALLOC FI(ADMCFORM) DA(’QMF1110.DSQCFORM’) SHR REUSEALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSEALLOC FI(ADMSYMBL) DA(’ADM.GDDMSYM’) SHR REUSEALLOC FI(ADMGDF) DA(’ADM.GDDM.CHARTLIB’) SHR REUSEALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE/************************************************************//* Conjuntos de datos utilizados por QM *//************************************************************/ALLOC FI(DSQPRINT) SYSOUT(X) USING(PRINTDCB)ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKSALLOC FI(DSQEDIT) NEW UNIT(SYSDA) USING(EDITDCB)

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 203

Page 216: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE/************************************************************//* Iniciar el programa como diálogo ISPF inicial *//************************************************************/ISPSTART PGM(sampPLI) NEWAPPL(DSQE)EXIT CODE(4)

La sentencia EXIT CODE(4) suprime el panel de eliminación de ISPF.

Interfaz de lenguaje de REXXREXX es un lenguaje interpretativo, por lo que no es necesario compilarlo.

Sin embargo, los programas que utilizan REXX compilado u otros lenguajescompilados tienen un mejor rendimiento que los mismos programas escritos queutilizan REXX interpretativo. Hay un compilador de REXX disponible paraprogramas de REXX, pero no para procedimientos con lógica.

En TSO, inicie QMF con la interfaz invocable de REXX cuando utiliceprocedimientos con lógica y determinadas funciones de formulario de QMF(cálculos, columnas definidas y condiciones). La interfaz invocable de REXX puedereducir los recursos necesarios para utilizar servicios de REXX.

Por ejemplo, se necesitan menos recursos para emitir los mandatos PRINTREPORT o BOTTOM o el panel REPORT si QMF se ha iniciado con la interfazinvocable de REXX. La reducción del consumo de recursos puede ser sustancial ymás perceptible al ejecutar QMF bajoTSO.

El lenguaje REXX siempre funciona en un entorno de mandatos que determinacómo y dónde se procesa el mandato. Si escribe un programa de REXX que emitamandatos de QMF, puede utilizar el entorno de mandatos de QMF mediante elmandato ADDRESS QRW.

Restricción: Puesto que REXX no está disponible bajo QMF para CICS, la interfazinvocable de QMF para REXX no funciona bajo CICS.Conceptos relacionados:Capítulo 5, “ADDRESS QRW y el entorno de mandatos de QMF”, en la página 31Cuando se inicia QMF en TSO, ISPF o z/OS nativo, QMF crea un entorno demandatos de REXX denominado QRW. Si va a ejecutar un programa REXX, puedeestablecer el entorno de mandatos predeterminado en QRW emitiendo el mandatoADDRESS QRW de REXX ADDRESS. Con ADDRESS QRW, QMF permanece en elentorno de mandatos predeterminado hasta que se emite otro mandato ADDRESS.

Variables de comunicaciones de interfaz de REXXLas variables de las comunicaciones de interfaz consisten en distintas variablesdeREXX. Se establecen después de la terminación de cada llamada y no deben seralteradas por el programa de llamada.

En esta tabla se muestran las variables de comunicaciones de interfaz paravariables de REXX:

204 Developing DB2 QMF applications

Page 217: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 49. Variables de comunicaciones de interfaz para REXX

Nombre de la estructura Descripción

dsq_return_code Entero que indica los resultados de la ejecución de unmandato de QMF

Los valores posibles son:

dsq_successProcesamiento satisfactorio de la solicitud

dsq_warningTerminación normal con avisos

dsq_failureMandato no procesado correctamente

dsq_severeError grave que fuerza que finalice la sesión deQMF

Las llamadas adicionales a QMF no se puedenrealizar con este ID de instancia.

El valor de código_retorno_dsq también se coloca en lavariable de REXX rc.

id_instancia_dsq Identificador establecido por QMF durante el procesamientodel mandato START

producto_dsq Identifica el producto de consulta de IBM que se estáutilizando

Las variables que empiezan por dsq_qmf especificanversiones de QMF para TSO.

dsq_product_release Nivel de release de QMF que se está utilizando

La variable dsq_qmf_v10r1 especifica QMF Versión 11Release 1.

dsq_message_id ID de mensaje de finalización

dsq_q_message_id ID de mensaje de consulta

dsq_start_parm_error Parámetro erróneo cuando ha fallado START debido a unerror de parámetro

dsq_cancel_ind Indicador de cancelación de mandato que indica si elusuario ha cancelado el procesamiento del mandatomientrasQMF estaba ejecutando un mandato; los valoresposibles son:

dsq_cancel_yesEl usuario ha cancelado el mandato

dsq_cancel_noEl usuario no ha cancelado el mandato

dsq_message_text Texto de mensaje de finalización

dsq_q_message_text Texto de mensaje de consulta

Llamada a función de REXXSe accede a la interfaz invocable utilizando llamadas a función de REXX normales.QMF proporciona una subrutina externa denominada DSQCIX, que se ejecuta paraejecutar todos los mandatos de QMF emitidos mediante la interfaz invocable.

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 205

Page 218: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

La sintaxis de la llamada a la función DSQCIX es la siguiente:llamada DSQCIX cmd listaParám

En esta sintaxis, cmd es un mandato de QMF que se escribe como una serie decaracteres en mayúsculas y listaParám es una lista de pares de valores yparámetros.

Sintaxis de la lista de parámetros de la llamada a la función DSQCIX

�� ( �

,

nombreParámetro = valor)

��

Pase todo el mandato, incluyendo la listaparám a QMF como una única variable deREXX escrita como una serie de caracteres. Esta serie debe estar incluida entrecomillas simples (' ') o dobles (" "). Cuando utilice variables de REXX como partede la serie de mandato, no incluye en argumento. Por ejemplo:CALL DSQCIX "RUN QUERY NAME (&ECN="REXAUG",CONFIRM=YES)"

nombre_parámetroEl nombre del parámetro

valorEl valor que debe asociarse con el nombre de parámetro especificado pornombreParám

Aquí encontrará algunos ejemplos de llamadas a función:call DSQCIX "RUN QUERY Q1"call DSQCIX "PRINT REPORT (FORM=F1"call DSQCIX "EXIT"

En la listaParám, se producen los mismos resultados tanto si los siguienteselementos están presentes o no:v Coma (,) entre parámetros (un espacio genera el mismo resultado)v Paréntesis de cierre (que no es necesario)v Signo igual (=) entre nombreParám y valor (un espacio genera el mismo resultado)

Cada uno de los siguientes generaría los mismos resultados:call dsqcix "SET GLOBAL (abc=17, def=26"call dsqcix "SET GLOBAL ( abc=17 def=26"call dsqcix "SET GLOBAL ( abc=17 , def=26)"call dsqcix "SET GLOBAL (abc 17 def=26)"

Ejemplo de programación de REXXEl programa de ejemplo de REXX, DSQABFX, se suministra con QMF.

Puede examinar el listado del código fuente de ejemplo aquí o puede acceder almismo en línea. El programa de ejemplo es un miembro de la bibliotecaQMF1110.SDSQEXCE.

El programa de ejemplo de la interfaz invocable de REXX realiza las siguientesfunciones:v Inician QMF

206 Developing DB2 QMF applications

Page 219: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

v Establecen tres variables globalesv Ejecutan una consulta denominada Q1v Imprimen el informe de resultados utilizando el formulario F1v Finalizan la sesión de QMF

QMF no proporciona el formulario Q1 ni la consulta Q1, pero el programa deejemplo utiliza estos objetos./*REXX***************************************************************//* Programa ejem.: DSQABFX *//* Versión REXX de la interfaz invocable de QMF *//********************************************************************/

/********************************************************************//* Iniciar una sesión de interfaz de consulta *//********************************************************************/

call dsqcix "START (DSQSMODE=INTERACTIVE"say dsq_message_id dsq_message_textif dsq_return_code = dsq_severe then exit dsq_return_code

/********************************************************************//* Establecer valores numéricos en consulta utilizando mandato SET *//********************************************************************/

call dsqcix "SET GLOBAL (MYVAR01=20,SHORT=40,MYVAR03=84"say dsq_message_id dsq_message_textif dsq_return_code = dsq_severe then exit dsq_return_code

/********************************************************************//* Ejecutar una consulta *//********************************************************************/

call dsqcix "RUN QUERY Q1"say dsq_message_id dsq_message_textif dsq_return_code = dsq_severe then exit dsq_return_code

/********************************************************************//* Imprimir los resultados de la consulta *//********************************************************************/

call dsqcix "PRINT REPORT (FORM=F1)"say dsq_message_id dsq_message_textif dsq_return_code = dsq_severe then exit dsq_return_code

/********************************************************************//* Finalizar la sesión de la interfaz de consulta *//********************************************************************/

call dsqcix "EXIT"say dsq_message_id dsq_message_textexit dsq_return_code

Ejecución de programas REXXDespués de escribir el programa en REXX, deberá ejecutarlo.

Puede ejecutar el programa REXX enTSO escribiendo un programa parecido al quese muestra aquí:/*****************************************************************//* Emitir asignaciones de TSO para el producto QMF *//*****************************************************************/Address TSO

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 207

Page 220: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

"ATTR PRINTDCB LRECL(133) RECFM(F B A) BLKSIZE(1330)""ATTR DEBUGDCB LRECL(80) RECFM(F B) BLKSIZE(3120)""ATTR UDUMPDCB LRECL(125) RECFM(V B A) BLKSIZE(1632)""ATTR EDITDCB LRECL(79) RECFM(F B A) BLKSIZE(4029)""ALLOC FI(SYSPROC) SHR REUSE ","DA(’QMF1110.DSQCLSTE,’",

"’DSN.DSNCLIST’)""ALLOC FI(SYSEXEC) SHR REUSE ","DA(’QMF1110.SDSQEXCE’)""ALLOC FI(ISPLLIB) SHR REUSE ","DA(’QMF1110.SDSQLOAD,’",

"’ADM.GDDM.GDDMLOAD,’","’DSN.DSNLOAD’)"

"ALLOC FI(DSQPNLE) DA(’QMF1110.DSQPNLE’) SHR REUSE""ALLOC FI(DSQPRINT) SYSOUT USING(PRINTDCB)""ALLOC FI(SYSPRT) SYSOUT(X) LRECL(132) RECFM(FBA) BLKSIZE(132)""ALLOC FI(DSQDEBUG) SYSOUT(X) USING(DEBUGDCB)""ALLOC FI(DSQUDUMP) SYSOUT(X) USING(UDUMPDCB)""ALLOC FI(DSQSPILL) NEW UNIT(SYSDA) SPACE(1,1) TRACKS""ALLOC DDNAME(DSQEDIT) UNIT(SYSDA) NEW USING(EDITDCB)""ALLOC FI(ADMDEFS) DA(’ADM.GDDM.NICKNAME’) SHR REUSE""ALLOC FI(ADMGGMAP) DA(’QMF1110.SDSQMAPE’) SHR REUSE""ALLOC FI(ADMCFORM) DA(’QMF1110.DSQCHART’) SHR REUSE""ALLOC FI(DSQUCFRM) DA(’QMF1110.DSQUCFRM’) SHR REUSE""ALLOC FI(ADMGDF) DA(’GDDM.ADMGDF’) SHR REUSE""ALLOC FI(ADMSYMBL) DA(’ADM.GDDM.GDDMSYM’) SHR REUSE"

/* El inicio del programa REXX ..... */.../* El final del programa REXX........ */

Ejemplo de REXX de utilización de un bucle INTERACTPuede hacer que el mandato END en una sesión interactiva se comporte de formaparecida a como se comporta END en QMF interactivo.

Normalmente, cuando el programa de la interfaz invocable emite un mandatoINTERACT y el usuario emite el mandato END, QMF devuelve inmediatamente elcontrol al programa. No obstante,QMF interactivo permito que el usuario emita elmandato END para volver al panel de inicio de QMF. Una segunda emisión delmandato END finaliza la sesión de QMF.

Añada la lógica del siguiente ejemplo al programa para permitir que el mandatoEND se comporte de forma parecida a QMF interactivo.

Este programa utiliza ID_mensaje_dsq para determinar cómo proceder. Estos valorespueden cambiar de un release al siguiente.

Este programa no se distribuye con QMF./*REXX*************************************************************//* Programa de ejemplo: utilización del bloque INTERACT *//******************************************************************//******************************************************************//* Iniciar una sesión de QMF interactiva *//******************************************************************/error de rastreo

parms = "START (DSQSMODE=INTERACTIVE"call dsqcix parmsif dsq_return_code = dsq_severe then exit dsq_return_code/******************************************************************/

208 Developing DB2 QMF applications

Page 221: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

/* SET GLOBAL para mostrar identificadores de panel *//******************************************************************/call dsqcix "SET GLOBAL (DSQDC_SHOW_PANID=1"if dsq_return_code = dsq_severe then exit dsq_return_code/******************************************************************//* Emitir mensaje *//******************************************************************/call dsqcix "MESSAGE (TEXT=’OK, you may enter a command.’)"if dsq_return_code = dsq_severe then exit dsq_return_code/******************************************************************//* Bucle INTERACT *//******************************************************************/Continue = "yes"Do while continue = "yes"

call DSQCIX "INTERACT"Select

When (dsq_return_code = dsq_severe) Then /* Error grave */Continue = "no"

When (dsq_message_id = "DSQ21869") Then /* END desde panel HOME*/Continue = "no"

When (dsq_message_id = "DSQ90557") Then /* Usu. ha emitido EXIT*/Continue = "no"

Otherwise nop /* OK continuar sesión */Fin

Fin/******************************************************************//* Final de la sesión *//******************************************************************/if dsq_message_id <> "DSQ90557" then /* EXIT not issued */

call dsqcix "EXIT" /* Issue EXIT */

exit dsq_return_code

Capítulo 11. Especificaciones del lenguaje de programación para utilizar la interfaz invocable 209

Page 222: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

210 Developing DB2 QMF applications

Page 223: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Apéndice A. Macros de interfaz de producto

Esta tabla lista macros que se proporcionan con QMF como Interfaces deprogramación de uso general para clientes.

Importante: No utilice ninguna macro de QMF como interfaz de programaciónque no sean las macros aquí identificadas.

Tabla 50. Macros que proporcionan interfaces para las funciones de QMF

Propósito Nombres de macro

Macro de interfaz de productoDSQQMFn

En este nombre de programa, n es elidentificador de idioma nacional. Para elinglés, este identificador es E.

Macros de interfaz invocable v Assembler

– DSQCIA

– DSQCOMMA

v COBOL

– DSQCIB

– DSQCOMMB

v C/C++

– DSQCIC

– DSQCICE

– DSQCOMMC

v Fortran

– DSQCIF

– DSQCIFE

– DSQCOMMF

v PL/I

– DSQCIPL

– DSQCIPX

– DSQCOMML

v REXX

– DSQCIX

Macro de interfaz de mandatos DSQCCI

Macros de interfaz de rutina de salida degobierno de QMF

v DXEGOVA

v DXEXCBA

Macro de rutina de salida de edición delusuario de QMF

DXEECS

Referencia relacionada:“Convenios de la información sobre la característica de idioma nacional” en lapágina 5DB2 QMF está disponible en varios idiomas diferentes, cada uno de los cuales essuministrado por una característica de idioma nacional (NLF).

© Copyright IBM Corp. 1982, 2013 211

Page 224: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

212 Developing DB2 QMF applications

Page 225: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Apéndice B. Variables globales de QMF

QMF proporciona muchas variables globales que le ayudan a controlar aspectos dela sesión de QMF, los mandatos de QMF y la pantalla del panel. Las variablesglobales también le ayudan a controlar el comportamiento de las funciones deQMF en procedimientos y aplicaciones.

Convenio de denominación de las variables globales de QMFEl convenio de denominación de la mayoría de las variables globales que seproporcionan con QMF es DSQcc_xxxxxxxxxxxx. cc identifica la categoría de lavariable, y xxxxxxxxxxxx es un nombre descriptivo de hasta 12 caracteres delongitud. Se incluye un carácter de subrayado (_) después de cc.

cc puede ser cualquiera de los siguientes identificadores:

AP Variables para información de estado relacionada con el perfil

AO Variables para otra información de estado (no relacionada con el perfil)

CM Variables para información sobre el mensaje producido por el mandato anterior

PA Variables para información sobre el Editor de tablas

DC Variables que controlan el modo en que QMF visualiza información en lapantalla

EC Variables que controlan el modo en que QMF ejecuta mandatos yprocedimientos

QC Variables con valores producidos por una opción CONVERTIR CONSULTA

QM Variables que contienen información de mensajes de error de EJECUTARCONSULTA

QW Variables exclusivas de QMF para Workstation.

Variables de sesión

Las variables de sesión siguen un convenio de denominación distinto. Las variablesde sesión son variables globales que almacenan los valores que los usuarios entranen algunos campos de algunos paneles si la variable global DSQEC_SESSGLV_SAVestá establecida en 1 o 2. El convenio de denominación de las variables de sesiónes el siguiente:

DXYnpppp_ln_dd

donde:v n es el identificador de idioma nacionalv pppp corresponde a las últimas cuatro letras del ID de panelv ln es un ID asociado con el campov dd es un ID asociado con el campo que se utiliza sólo si el campo depende de

otro campo

© Copyright IBM Corp. 1982, 2013 213

|

|||||

|

|

|

|

|

||

Page 226: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Información relacionada:

Getting Started with DB2 QMF for Workstation and DB2 QMF for WebSphereBusque información sobre las variables globales exclusivas de QMF paraWorkstation.

Configuración y visualización de valores para variables globalesSi el valor que desea asignar a una variable global es es de 55 bytes o menos,utilice el mandato FIJAR GLOBAL para asignar el valor. Si la variable es superior a55 bytes, utilice el mandato MOSTRAR GLOBALES.

Acerca de esta tarea

Por omisión, una variable global mantiene su valor hasta que se restablece ofinaliza la sesión de QMF. Sin embargo, se puede establecer la variable globalDSQEC_USERGLV_SAV para guardar los valores de las variables globales entresesiones.

Para personalizar variables globales durante la inicialización, consulte lainformación en Instalación y gestión de DB2 QMF para TSO y CICS sobre lainicialización de variables globales y el comportamiento de la sesión de QMFcuando se inicia QMF.

Procedimiento

Para asignar un valor mayor que 55 a una variable global:1. Utilice el mandato MOSTRAR GLOBALES para visualizar el panel GLOBALES.2. Pulse la tecla Mostrar Campo para visualizar todo el campo de entrada. La

longitud máxima para una variable global en la pantalla Mostrar VariableGlobal es 32.768 bytes.

3. Escriba el valor para para la variable en las líneas proporcionadas.

214 Developing DB2 QMF applications

||||

Page 227: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBusque información sobre el procedimiento Q.SYSTEM_INI que le permitepersonalizar las variables globales durante la inicialización.

SET GLOBALEl mandato FIJAR GLOBAL asigna valores a variables globales desde la línea demandatos QMF, desde un procedimiento o a través de la interfaz invocable.

MOSTRAREl mandato MOSTRAR tiene muchos usos. Por ejemplo, puede utilizar el mandatoMOSTRAR para navegar entre paneles de objeto y mostrar una variación del panelFORMATO.DETALLE.

Variables globales para información de estado no relacionada con elperfil

Las variables globales DSQAO contienen información de estado o valores deparámetros o distintivos. Ninguna de estas variables globales se puede modificarmediante el mandato FIJAR GLOBAL.

Tabla 51. Variables globales para información de estado no relacionada con el perfil

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAO_APPL_TRACE DSQATRAC 010 para el nivel A0

1 para el nivel A1

2 para el nivel A2

DSQAO_ATTENTION DSQCATTN 01 Indicador de atención del usuario.

DSQAO_BATCH DSQABATC 01 Modalidad por lotes o interactiva; los valorespueden ser:

1 para una sesión interactiva

2 para una sesión de modalidad por lotes

DSQAO_CONNECT_ID DSQAAUTH 08 ID de usuario utilizado para conectar a labase de datos y con el que se realiza eltrabajo.

El valor de esta variable cambia cuandoemite el siguiente mandato o sentencia:

v Emita un mandato CONECTAR de QMFpara reconectar a la base de datos con unID de autorización distinto

v Emita una sentencia SET CURRENTSQLID en una base de datos DB2 paraz/OS.

DSQAO_CONNECT_LOC Ninguna 18 El nombre de ubicación de la base de datos ala que está conectado actualmente; el nombretiene 16 caracteres (rellenado con blancos a laderecha, si es necesario).

DSQAO_CURSOR_OPEN DSQACRSR 01` Estado del cursor de la base de datos; losvalores pueden ser:

1 si el cursor está abierto

2 si el cursor está cerrado

Apéndice B. Variables globales de QMF 215

Page 228: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 51. Variables globales para información de estado no relacionada con el perfil (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAO_DB_MANAGER DSQADBMG 01 Gestor de base de datos, que se indicamediante uno de los siguientes valores:

1 DB2 para VSE y VM

2 DB2 para z/OS

3 DB2 para Linux, UNIX y Windows

4 DB2 para iSeries

DSQAO_DBCS DSQADBCS 01 Estado de soporte de DBCS; los valorespueden ser:

1 para el soporte de DBCS

2 para la ausencia de soporte de DBCS

DSQAO_DSQSBSTG Ninguna 10 Contiene el valor especificado por elparámetro DSQSBSTG o el valor por omisiónsi no se ha especificado el parámetro.

DSQAO_DSQSPILL Ninguna 1 Contiene el valor especificado por elparámetro DSQSPILL o el valor por omisiónsi no se ha especificado el parámetro.

Se utilizan los siguientes valores:

0 para no utilizar almacenamiento devertido. Este valor corresponde a unvalor de parámetro DSQSPILL de NO.

1 para utilizar almacenamiento devertido. Este valor corresponde a unvalor de parámetro DSQSPILL de SI.

DSQAO_DSQSPTYP Ninguna 5 Contiene el valor especificado por elparámetro DSQSPTYP o el valor por omisiónsi no se ha especificado el parámetro.

Se utilizan los siguientes valores:

FILEpara verter datos en un archivo.

64 BITSpara verter datos en el almacenamientovirtual ampliado.

DSQAO_DSQSRSTG Ninguna 8 Contiene el valor especificado por elparámetro DSQSRSTG o el valor por omisiónsi no se ha especificado el parámetro.

216 Developing DB2 QMF applications

||||||

||||||

|

||||

||||

||||||

|

||

|||

||||||

Page 229: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 51. Variables globales para información de estado no relacionada con el perfil (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAO_FORM_PANEL DSQASUBP 02 Panel de formato actual; los valores puedenser:

1 para FORMATO.PRINCIPAL

2 para FORMATO.COLUMNAS

3 para FORMATO.PAGINA

4 para FORMATO.FINAL

5 para FORMATO.CORTE1

6 para FORMATO.CORTE2

7 para FORMATO.CORTE3

8 para FORMATO.CORTE4

9 para FORMATO.CORTE5

10 para FORMATO.CORTE6

11 para FORMATO.OPCIONES

12 para FORMATO.CALC

13 para FORMATO.DETALLE

14 para FORMATO.CONDICIONUn valor en blanco significa que el formatono existe en el almacenamiento temporal deQMF.

DSQAO_INTERACT DSQAIACT 01 Valor del indicador de interacción; losvalores pueden ser:

0 para no permitir la ejecución interactiva

1 cuando se permite la ejecucióninteractiva

DSQAO_LOCAL_DB2 Ninguna 18 Nombre de ubicación de la base de datosDB2 para z/OS local.

Este valor es el nombre de ubicación delsubsistema nombrado en la variableDSQAO_SUBSYS_ID. En un entorno deunidad de trabajo remota, DSQ_LOCAL_DB2es el nombre del peticionario de aplicaciones.El nombre tiene 16 caracteres (rellenado conblancos a la derecha, si es preciso).

DSQAO_LOCATION DSQAITLO 18 Nombre de ubicación del objeto actual, si lohay.

Este valor sólo se aplica si se utilizó unnombre de tres partes. El nombre tiene 16caracteres (rellenado con blancos a laderecha, si es preciso).

DSQAO_NLF_LANG DSQALANG 01 Idioma nacional del usuario; para el entornoen idioma inglés, el valor es ‘E’.

DSQAO_NUM_FETCHED DSQAROWS 16 Filas de datos buscadas; contiene '0' cuandoel objeto de DATOS está vacío.

Apéndice B. Variables globales de QMF 217

Page 230: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 51. Variables globales para información de estado no relacionada con el perfil (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAO_OBJ_NAME DSQAITMN 128 El nombre de la tabla (contenida en uninforme), consulta, procedimiento o formatoque se muestra en el panel visualizadoactualmente.

Si el panel actual no visualiza un objeto o siel objeto visualizado no tiene nombre, estavariable contiene blancos.

DSQAO_OBJ_OWNER DSQAITMO 128 El propietario de la tabla (contenido en uninforme), consulta, procedimiento o formatoque se muestra en el panel visualizadoactualmente.

Si el panel actual no visualiza un objeto o siel objeto visualizado no tiene propietario,esta variable contiene blancos.

DSQAO_OTC_LICENSE Ninguna 01 Muestra el valor de la opción OTC_LICENSEen la rutina de inicialización DSQUOPTS. Elvalor de esta opción indica si se hanaceptado los términos de un acuerdo delicencia de QMF VUE. El acuerdo de licenciaestá en el miembroQMF1110.SDSQSAPE(DSQ0IPOB).

0 La opción OTC_LICENSE enDSQUOPTS tiene el valor NOT_USED,que es el valor para ediciones que nosean VUE de QMF. Este valor es elvalor por omisión.

1 La opción OTC_LICENSE enDSQUOPTS tiene el valorTERMS_ACCEPTED, lo que indica quese han aceptado los términos de unacuerdo de licencia de QMF VUE. Laopción debe tener este valor para que seinicie una edición VUE de QMF.

Una vez que se cambia el valor, se debereemsamblar y editar los enlaces delmódulo DSQUOPTS y, a continuaciónasignar de forma que se encuentredurante el proceso de inicialización deQMF.

DSQAO_PANEL_TYPE DSQAITEM 01 Tipo del panel actual; los valores pueden ser:

1 para INICIAL

2 para CONSULTA

3 para INFORME

4 para FORMATO

5 para PROC

6 para PERFIL

7 para DIAGRAMA

8 para LISTA

9 para Editor de tablas

A para GLOBALES

218 Developing DB2 QMF applications

Page 231: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 51. Variables globales para información de estado no relacionada con el perfil (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAO_QMF_RELEASE DSQAREVN 02 Número de release de QMF, que aparece enlos registros de cabecera para formatosexportados, informes y consultas desolicitud. Para QMF Versión 11 Release 1,este valor es '17'.

DSQAO_QMF_VER_RLS DSQAQMF 10 Versión y release de QMF. Para QMF Versión11 Release 1, este valor es 'QMFV11R1.0'.

DSQAO_QMFADM Ninguna 01 Autorización de administrador de QMF:

0 El ID de autorización actual no tieneautorización de administrador de QMF.

1 El ID de autorización actual tieneautorización de administrador.

DSQAO_QRY_SUBTYPE DSQASUBI 01 Subtipo de consulta; los valores pueden ser:

1 para un subtipo de SQL

2 para un subtipo de QBE

3 para un subtipo de SOLICIT

Un blanco significa que el panel actual no esCONSULTA.

DSQAO_QUERY_MODEL DSQAMODL 01 Modelo de la consulta actual; el valor sólopuede ser '1' (para modelo de datosrelacional).

DSQAO_SAME_CMD DSQACMDM 01 Los valores pueden ser:

0 Si los dos mandatos no son iguales

1 si los dos mandatos son iguales

DSQAO_STO_PROC_INT Ninguna 01 Muestra si QMF para TSO se ha iniciadocomo un procedimiento almacenado DB2para z/OS. Los valores posibles son:

0 QMF no se ha iniciado comoprocedimiento almacenado.

1 QMF se ha iniciado comoprocedimiento almacenado.

DSQAO_SUBSYS_ID Ninguna 04 Si QMF se está ejecutando en TSO, este valores el ID del subsistema DB2 local al que estáconectado QMF.

Si especifica un valor para el parámetro deprograma DSQSSUBS en CICS, esta variableglobal contiene ese valor. El parámetro setolera y el valor no se procesa. El valor secoloca en el campo de variable global y no sehace nada con él. Esta lógica permite utilizarel mismo programa en múltiples entornos.

DSQAO_SYSTEM_ID DSQASYST 01 Sistema operativo actual; los valores puedenser:

2 TSO bajo z/OS

3 TSO o z/OS nativo

5 CICS

Apéndice B. Variables globales de QMF 219

|||||

||

Page 232: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 51. Variables globales para información de estado no relacionada con el perfil (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAO_TERMINATE DSQCSESC 01 Indicador de terminación de QMF; losvalores pueden ser:

0 si la sesión no se ha marcado paraterminación

1 si la sesión se ha marcado paraterminación

DSQAO_VARIATION DSQAVARN 02 Número de variación del panel de formato;un espacio en blanco significa queFORMATO.DETALLE no es el panel actual.

Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBusque información sobre cómo establecer la opción OTC_LICENSE en la rutinaDSQUOPTS.

Variables globales para información de estado relacionada con el perfilLas variables globales DSQAP almacenan información relacionada con los valoresde perfil de QMF. Ninguna de estas variables globales se puede modificarmediante el mandato FIJAR GLOBAL.

Tabla 52. Variables globales para información de estado relacionada con el perfil

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAP_CASE DSQAPCAS 01 Parámetro MAY/MIN; los valores puedenser:

1 para MAYUS

2 para MIXTO

3 para SERIE

Si el sitio utiliza soporte RACF paracontraseñas en mayúsculas y minúsculasbajo TSO, establezca este valor en 2. Sin estevalor, toda la entrada (incluidas lascontraseñas) se convierte en mayúsculas yesto hará que el mandato CONECTAR falle.Si establece MAY/MIN en MIXTO, asegúresede entrar toda la entrada en mayúsculas,puesto que QMF sólo reconoce los mandatosen mayúsculas.

DSQAP_CONFIRM DSQAPRMP 01 Parámetro CONFIRM; los valores puedenser:

0 para NO

1 para SI

DSQAP_DECIMAL DSQAPDEC 01 Parámetro DECIMAL; los valores puedenser:

1 para PUNTO

2 para COMA

3 para FRANCES

DSQAP_LENGTH DSQAPLEN 18 Parámetro LONGITUD; su valor es el delparámetro (de '1' a '999' o 'CONT').

220 Developing DB2 QMF applications

Page 233: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 52. Variables globales para información de estado relacionada con el perfil (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAP_PFKEY_TABLE DSQAPPFK 31 Nombre de la tabla de teclas de función.

DSQAP_PRINTER DSQAPPRT 08 Parámetro IMPRES; los valores pueden ser:

v Apodo para una impresora GDDM.

v Blancos para la impresora asociada conDSQPRINT.

DSQAP_QUERY_LANG DSQAPLNG 01 Parámetro LENGUAJE; los valores puedenser:

1 para SQL

2 para QBE

3 para SOLICIT

DSQAP_QUERY_MODEL DSQAMODP 01 Parámetro MODELO (su valor es '1' pararelacional).

DSQAP_RESOURC_GRP DSQAPGRP 16 Parámetro GRUPO DE RECURSOS.

DSQAP_SPACE DSQAPSPC 50 Parámetro ESPACIO; su valor es el delparámetro.

DSQAP_SYNONYM_TBL DSQAPSYN 31 Nombre de la tabla de sinónimos utilizadapara la sesión de QMF actual. Cuando unusuario especifica un sinónimo de mandato,la definición de sinónimo debe estaralmacenada en la tabla especificada aquí o elmandato fallará.

DSQAP_TRACE DSQAPTRC 18 Parámetro TRACE; los valores pueden ser:

ALL(rastreo máximo)

NO (rastreo mínimo)

También puede especificar una serie de letrasy números que especifique los componentesque deben rastrearse y en qué niveles dedetalle (por ejemplo, A2L2C1).

DSQAP_WIDTH DSQAPWID 18 Parámetro ANCHO; su valor es el delparámetro (de '22' a '999').

Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBusque información sobre la estructura de una tabla de sinónimos de mandatosQMF y sobre el nivel de detalle de la salida de rastreo.

Variables globales asociadas con CICSVariables globales DSQAP asociadas con entornos CICS. SóloDSQAP_CICS_PQNAME y DSQAP_CICS_PQTYPE se pueden modificar medianteel mandato FIJAR GLOBAL.

Cuando el tipo de cola es datos transitorios (TD), la longitud máxima del nombrede cola correspondiente es 4. Por ejemplo, si DSQAO_CICS_SQTYPE es TD, lalongitud máxima de DSQAO_CICS_SQNAME es 4.

Apéndice B. Variables globales de QMF 221

Page 234: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 53. Variables globales asociadas con el entorno CICS

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQAP_CICS_PQNAME Ninguna 08 Indica el nombre de la cola de datos de CICSpara contener la salida de impresión deQMF.

DSQAP_CICS_PQTYPE Tipo de almacenamiento de CICS utilizadopara contener la salida de impresión deQMF:

TS Graba la impresión de QMF en una colade almacenamiento temporal de CICSde un dispositivo de almacenamientoauxiliar. Este valor es el valor poromisión.

TD Graba la impresión de QMF en una colade datos transitoria de CICS.

DSQAO_CICS_SQNAME Ninguna 08 Indica el nombre de la cola de datos de CICSque ha de utilizarse como archivo de vertido.

DSQAO_CICS_SQTYPE Ninguna 02 Tipo de almacenamiento de CICS utilizadopara contener el archivo de vertido de QMF:

TS Graba los datos de vertido de QMF enuna cola de almacenamiento temporalde CICS en un dispositivo dealmacenamiento auxiliar. Este valor esel valor por omisión.

TD Graba los datos de vertido de QMF enuna cola de datos transitoria de CICS.

DSQAO_CICS_TQNAME Ninguna 08 Indica el nombre de la cola de datos de CICSque ha de contener el rastreo de QMF.

DSQAO_CICS_TQTYPE Ninguna 02 Tipo de almacenamiento de CICS utilizadopara contener los datos de rastreo de QMF:

TS Graba el rastreo de QMF en una cola dealmacenamiento transitoria de CICS enun dispositivo de almacenamientoauxiliar.

TD Graba el rastreo de QMF en una cola dedatos transitoria de CICS. Este valor esel valor por omisión.

Variables globales relacionadas con un mensaje producido por elmandato más reciente

Las variables globales DSQCM contienen información sobre el mandato de QMFque se ha emitido más recientemente. Ninguna de estas variables globales sepuede modificar mediante el mandato FIJAR GLOBAL.

Tabla 54. Variables globales que capturan información sobre el mandato que se ha emitido más recientemente

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQCM_MESSAGE DSQCM_MESSAGE 80 Texto del mensaje.

DSQCM_MESSAGE_ALL DSQCIMSA 360 Texto completo del mensaje.

DSQCM_MSG_HELP DSQCIMID 08 ID del panel de ayuda del mensaje.

DSQCM_MSG_NUMBER DSQCIMNO 08 Número de mensaje.

DSQCM_SUB_TXT_nn DSQCIMnn 20 Valor de sustitución nn.

222 Developing DB2 QMF applications

Page 235: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Variables globales asociadas con el Editor de tablasLas variables globales DSQCP están asociadas con las operaciones del Editor detablas. Todas estas variables globales se pueden modificar mediante el mandatoFIJAR GLOBAL.

La tabla siguiente muestra variables globales asociadas con las operaciones delEditor de tablas. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.

Si la opción de CONFIRM del mandato EDITAR TABLA es NO, el Editor de tablassuprime la visualización de todos los paneles de confirmación. Si la opción deCONFIRM es SI, el Editor de tablas determina las categorías de confirmación quese habilitan comprobando los valores de las variables globales que se muestran enesta tabla.

Los valores por omisión del Editor de tablas dependen de la palabra claveSALVAR del mandato EDITAR TABLA:v Cuando SALVAR=INMEDIATO, el valor por omisión para cada categoría es

habilitar.v Cuando SALVAR=FIN, el valor por omisión para las categorías SUPRIMIR,

MODIFICAR y FIN/CANCELAR es habilitar; el valor por omisión para lascategorías AÑADIR y CAMBIAR es inhabilitar.

Tabla 55. Variables globales asociadas con el Editor de tablas

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQCP_TEADD Ninguna 01 Visualiza un panel de confirmación despuésde un submandato AÑADIR; los valorespueden ser:

0 Se inhabilita el panel.

1 Se habilita el panel.

2 El panel se habilita o inhabilita segúnlos valores por omisión del Editor detablas. Este valor es el valor poromisión.

DSQCP_TECHG Ninguna 01 Visualiza un panel de confirmación despuésde un submandato CAMBIAR; los valorespueden ser:

0 Se inhabilita el panel.

1 Se habilita el panel.

2 El panel se habilita o inhabilita segúnlos valores por omisión del Editor detablas. Este valor es el valor poromisión.

DSQCP_TEDEL Ninguna 01 Visualiza un panel de confirmación despuésde un submandato SUPRIMIR; los valorespueden ser:

0 Se inhabilita el panel.

1 Se habilita el panel.

2 El panel se habilita o inhabilita segúnlos valores por omisión del Editor detablas. Este valor es el valor poromisión.

Apéndice B. Variables globales de QMF 223

Page 236: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 55. Variables globales asociadas con el Editor de tablas (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQCP_TEDFLT Ninguna 01 Carácter reservado que se utiliza paraindicar el valor por omisión de una columnadel Editor de tablas; inicialmente se estableceen un carácter de signo más (+).

DSQCP_TEDFLT_DBCS Ninguna 04 Carácter DBCS reservado que se utiliza paraindicar el valor por omisión de una columnade serie gráfica del Editor de tablas.

El valor debe ser una serie con combinaciónde cuatro bytes, compuesta por un solocarácter DBCS, precedida del carácter dedesplazamiento desde teclado estándar yseguida por el carácter de desplazamiento ateclado estándar. Inicialmente se establece enun carácter de signo más (+) DBCS. Estavariable global sólo se utiliza en un entornoDBCS.

DSQCP_TEEND Ninguna 01 Visualiza un panel de confirmación cuandoel usuario emite un submandato FIN o unsubmandato CANCELAR para finalizar unasubsesión del Editor de tablas.

El panel puede mostrarse en variasvariaciones:v Si se emite FIN o CANCELARv Si se realizan modificaciones en la base de

datosv Si la pantalla contiene datos modificados

cuando se emitió FIN o CANCELAR

Los valores pueden ser:

0 Se inhabilita el panel.

1 Se habilita el panel.

2 El panel se habilita o inhabilita segúnlos valores por omisión del Editor detablas. Este valor es el valor poromisión.

DSQCP_TEMOD Ninguna 01 Visualiza un panel de confirmación cuandose modifican los datos visualizados y seemite un submandato ANTERIOR, VACIAR,MOSTRAR CAMBIO, MOSTRARBUSQUEDA, RENOVAR o SIGUIENTE. Elpanel resultante incluye el nombre delsubmandato como parte del texto del panel.Los valores pueden ser:

0 Se inhabilita el panel.

1 Se habilita el panel.

2 El panel se habilita o inhabilita segúnlos valores por omisión del Editor detablas.

DSQCP_TENULL Ninguna 01 Carácter reservado que se utiliza paraindicar el valor nulo de una columna delEditor de tablas; inicialmente se establece enun carácter de guión (-).

224 Developing DB2 QMF applications

Page 237: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 55. Variables globales asociadas con el Editor de tablas (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQCP_TENULL_DBCS Ninguna 04 Carácter DBCS reservado que se utiliza paraindicar el valor nulo para una columna deserie gráfica en el Editor de tablas. Elcarácter también se utiliza para indicarignorar en el contexto de los criterios debúsqueda.

El valor debe ser una serie con combinaciónde cuatro bytes compuesta por un carácterDBCS, precedida por el carácter dedesplazamiento desde teclado estándar yseguida por el carácter de desplazamiento ateclado estándar. Inicialmente se establece enun carácter de guión (-) DBCS. Esta variableglobal sólo se utiliza en un entorno DBCS.

Variables globales que controlan varias visualizacionesLas variables globales DSQDC controlan la visualización de determinados tipos deinformación. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.

Tabla 56. Variables globales que controlan la visualización de determinados tipos de información

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQDC_COL_LABELS Ninguna 01 Controla si la cabecera de columna queaparece en FORMATO.PRINCIPAL yFORMATO.COLUMNAS toma de formapredeterminada la etiqueta de base de datosasignada a la columna o el nombre de lacolumna de la tabla en la que se haseleccionado.

0 Los nombres de columna se utilizancomo cabeceras de columnas enformatos QMF predeterminados.

1 Las etiquetas de base de datos seutilizan como cabeceras de columnas enformatos QMF predeterminados. Este esel valor por omisión.

DSQDC_COST_EST Ninguna 01 Controla visualización de estimación decostes de base de datos; los valores puedenser:

0 No se visualiza la estimación de costes.

1 Muestra la estimación de costes. Estevalor es el valor por omisión.

Apéndice B. Variables globales de QMF 225

Page 238: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 56. Variables globales que controlan la visualización de determinados tipos de información (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQDC_CURRENCY Ninguna 18 Símbolo de moneda utilizado cuando seespecifica el código de edición DC.

El valor puede ser una serie con unalongitud de 1 a 18 bytes. Para el inglés, elvalor por omisión es el símbolo del euro. Elvalor por omisión varía para los otrosidiomas. En un entorno DBCS, este valorpuede ser una serie con combinación decaracteres SBCS y DBCS. La longitud total dela serie con combinación, incluidos loscaracteres de desplazamiento desde tecladoestándar y desplazamiento a tecladoestándar, no puede superar los 18 bytes.

Si necesita un símbolo de moneda que noestá representado en el teclado, puede aúnespecificar el símbolo. Establezca la variableDSQDC_CURRENCY en un procedimientocon lógica en el valor hexadecimal que seaequivalente al símbolo correcto. Por ejemplo,el siguiente procedimiento establece elsímbolo de moneda en HEX '9F', queespecifica el símbolo de moneda de euro enQMF inglés:

/* */"SET GLOBAL (DSQDC_CURRENCY =" ’9F’X

Si son necesarios espacios en blanco finalespara el símbolo de moneda, coloque elsímbolo de moneda entre comillas. Esteejemplo muestra los blancos para QMFfrancés:

SET GLOBAL (DSQDC_CURRENCY = ’FR ’

Puede emitir este mandato desde la línea demandatos o en un procedimiento lineal.

226 Developing DB2 QMF applications

Page 239: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 56. Variables globales que controlan la visualización de determinados tipos de información (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQDC_DISPLAY_RPT DSQADPAN 01 Visualiza un informe después de EJECUTARCONSULTA; los valores pueden ser:

0 QMF no visualiza el informe resultantede un mandato EJECUTAR CONSULTA.

Este es el valor por omisión si QMF seha iniciado interactivamente conDSQQMFn (donde n es un identificadorde característica de idioma nacional).Este valor es también el valor poromisión si QMF se inicia en modalidadde proceso por lotes. Cambiar estavariable cuando QMF se inicia enmodalidad de proceso por lotes no haceque se visualice una pantalla de QMF.

1 QMF visualiza automáticamente elinforme.

Este es el valor por omisión si QMF seinicia con una interfaz invocable. Puedealterarse temporalmente con elparámetro de programa DSQADPANdel mandato START.

Esta variable global sólo es para lasaplicaciones. No tiene efecto alguno cuandoel mandato EJECUTAR CONSULTA se entraen la línea de mandatos.

DSQDC_LIST_ORDER Ninguna 02 Establece el orden de clasificación poromisión para los objetos de una lista deobjetos de la base de datos. Los valores parael primer carácter pueden ser:

1 La lista utiliza el orden por omisión.

2 La lista se ordena por propietario deobjeto.

3 La lista se ordena por nombre de objeto.

4 La lista se ordena por tipo de objeto.

5 La lista se ordena por fecha demodificación.

6 La lista se ordena por fecha de la últimautilización. La lista de mandatos queprovocan que esta fecha se actualice laestablece la variable globalDSQEC_LAST_RUN.

Los valores para el segundo carácter puedenser:

A La lista se ordena en orden ascendente.

D La lista se ordena en ordendescendente.

Esta variable sólo se aplica a los objetos quese listan como resultado del mandatoLISTAR. No se aplica a las listas que seproducen en otros contextos, como, porejemplo, desde un panel de solicitudVisualizar, ni se aplica a listas de tablas.

Apéndice B. Variables globales de QMF 227

Page 240: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 56. Variables globales que controlan la visualización de determinados tipos de información (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQDC_POS_SQLCODE Ninguna 01 Establece la acción que QMF emprendecuando se devuelve un código SQL positivodesde la base de datos. Los valores posiblesson:

0 No anota el mensaje en el archivo dedatos de rastreo (DSQDEBUG) y no seproporciona texto de ayuda.

1 Anota el mensaje de QMF asociado conel código SQL en el archivo de datos derastreo (DSQDEBUG).

2 La ayuda de mensajes de QMF estádisponible para el código SQL positivo.

Esta variable global no se aplica a loscódigos SQL +495 y +100.

DSQDC_SCROLL_AMT Ninguna 04 Establece la cantidad para el desplazamientode los paneles de QMF; los valores puedenser:

CsrEstablece la cantidad para eldesplazamiento en el cursor.

QMF desplaza la línea o columnadonde está situado el cursor al límiteinferior del área desplazable cuando sedesplaza hacia atrás. Del mismo modo,QMF desplaza a la parte superiorcuando se desplaza hacia adelante, yhacia el extremo izquierdo o derechocuando se desplaza a la izquierda oderecha.

MediEstablece la cantidad para eldesplazamiento en la mitad del áreadesplazable.

PagiEstablece la cantidad para eldesplazamiento en una página alcompleto. Este valor es el valor poromisión.

n Establece la cantidad para eldesplazamiento en n número de líneas ocolumnas. Puede especificar cualquiernúmero de 1 a 9999 para n.

228 Developing DB2 QMF applications

Page 241: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 56. Variables globales que controlan la visualización de determinados tipos de información (continuación)

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQDC_SHORT_EXPT Ninguna 01 Se aplica a los datos o tablas exportados conun valor de QMF en el parámetroDATAFORMAT del mandato EXPORTAR.Controla la longitud de todos los campos denombres de columnas de los registros decabecera. Los valores posibles son:

0 QMF establece la longitud de loscampos de columna de los registros decabecera en 30 bytes. Esta longitud es lalongitud predeterminada para:

v DB2 para z/OS Versión 8.1.5 oposterior

v DB2 para iSeries Versión 5.2 oposterior

v DB2 para Linux, UNIX y Windows,Versión 8.1 posterior

1 QMF establece la longitud de loscampos de columna de los registros decabecera en 18 bytes. Esta longitud es lalongitud predeterminada para:

v DB2 para z/OS, Versión 8.1.5 oanterior

v DB2 para iSeries, Versión 5.2 oanterior

v DB2 para Linux, UNIX y Windows,Versión 8.1 o anterior

v Todas las bases de datos DB2 Serverpara VSE y VM

DSQDC_SHOW_PANID DSQCPDSP 01 Visualiza los ID de panel de los paneles deQMF; los valores pueden ser:

0 Suprime los identificadores de panel.Este valor es el valor por omisión.

1 Visualiza los identificadores de panel.

Apéndice B. Variables globales de QMF 229

Page 242: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Referencia relacionada:“Variables globales que controlan cómo se ejecutan los mandatos y losprocedimientos”Las variables globales DSQEC controlan cómo se ejecutan los mandatos yprocedimientos. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.Información relacionada:

Instalación y gestión de DB2 QMF para TSO y CICSBusque información sobre las características de idioma nacional y susidentificadores de un solo carácter.

Variables globales que controlan cómo se ejecutan los mandatos y losprocedimientos

Las variables globales DSQEC controlan cómo se ejecutan los mandatos yprocedimientos. Todas estas variables globales se pueden modificar mediante elmandato FIJAR GLOBAL.

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_ALIASES Ninguna 31 Vista para recuperar listas de alias de vistas y tablas cuando sesolicita una lista de tablas de una ubicación DB2 para z/OS.También se aplica si el servidor actual es DB2 para z/OS o DB2para Linux, UNIX y Windows.

DSQEC_CC Ninguna 01 Suprime los caracteres de control de carro en el formato de salidadel informe; los valores pueden ser:

0 Sin carácter de control de carro en la columna 1.

1 El control de carro está en vigor; el informe tiene un carácterde control de carro en la columna 1.

DSQEC_COLS_LDB2 Ninguna 31 Vista para recuperar información de columnas para una tabla en laubicación actual, si dicha ubicación es DB2 para z/OS.

DSQEC_COLS_RDB2 Ninguna 31 Vista para recuperar información de columnas para una tabla enuna ubicación DB2 para z/OS remota (si no es la ubicación actual).

DSQEC_COLS_SQL Ninguna 31 Vista para recuperar información de columnas para una tabla deuna base de datos DB2 para VSE y VM.

230 Developing DB2 QMF applications

Page 243: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_CON_ACC_RES Ninguna 01 Se aplica a consultas SELECT ejecutables que QMF envía a DB2para z/OS. Utilice esta variable para especificar cómo desea que labase de datos continúe cuando los datos que se desea seleccionarestán bloqueados por una operación de inserción, actualización osupresión. Cuando se define esta variable, QMF especifica lacláusula asociada al valor de la variable en el atributo de resoluciónde acceso simultáneo de la sentencia PREPARE para la consultaSELECT. Las consultas SELECT ejecutables pueden ser el resultadono sólo de consultas QMF (como consultas SQL SELECT, consultassolicitud o consultas QBE P.), sino que también pueden serlo deotras operaciones QMF, como VISUALIZAR TABLA.

Los valores posibles son:

0 QMF no especifica ninguna opción de resolución de accesosimultáneo en la sentencia PREPARE asociada a la sentenciaSQL SELECT pendiente. Este valor es el valor por omisión.

1 SKIP LOCKED DATA

Este valor puede especificarse para sentencias SELECTejecutables dirigidas a DB2 para z/OS Versión 9 (Modalidadde nueva función) o posterior.

2 USE CURRENTLY COMMITTED

Este valor puede especificarse para sentencias SELECTejecutables dirigidas a DB2 para z/OS Versión 10 (Modalidadde nueva función) o posterior.

3 WAIT FOR OUTCOME

Este valor puede especificarse para sentencias SELECTejecutables dirigidas a DB2 para z/OS Versión 10 (Modalidadde nueva función) o posterior.

DSQEC_DISABLEADM Ninguna 01 Supresión de la autorización de administrador de QMF. Cuando secambia el valor de esta variable global, el efecto es inmediato. Losvalores posibles son:

0 La autorización de administrador de QMF está disponible (siel ID de autorización tiene autorización de administrador deQMF).

1 La autorización de administrador de QMF se suprime(independientemente de la autorización del ID deautorización).

El valor predeterminado inicial para esta variable global puedealterarse temporalmente mediante la rutina de salida de instalaciónDSQUOPTS.

DSQEC_DSALLOC_DIR Ninguna 03 Especifica el número de bloques de directorios que deben utilizarseal exportar un miembro de un nuevo conjunto de datos PDS enTSO. El valor debe ser mayor que cero para conjuntos de datosPDS.

Si está utilizando el tipo por omisión del sitio de conjunto de datoso conjuntos de datos PDSE, QMF ignora el valor de esta variableglobal. Para utilizar el tipo por omisión del sitio de conjunto dedatos, establezca DSQEC_PO en 0. Para utilizar conjuntos de datosPDSE, establezca DSQEC_PO en 2.

Si el sitio utiliza conjuntos de datos secuenciales, establezca estavariable global en cero.

Apéndice B. Variables globales de QMF 231

Page 244: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_DSALLOC_PRI Ninguna 08 QMF asigna conjuntos de datos en pistas. Esta variable globalespecifica la cantidad primaria de pistas para el conjunto de datosde TSO que se utilizará para almacenar los resultados del mandatoEXPORTAR de QMF.

Los valores pueden ser desde 1 hasta el tamaño máximo quepermitan el dispositivo de almacenamiento y el sistema operativo.El valor por omisión es 15. No se permite un valor de cero.

Los conjuntos de datos PS, PDS y PDSE pueden tener un valormáximo de 16777215 pistas.

DSQEC_DSALLOC_SEC Ninguna 08 QMF asigna conjuntos de datos en pistas. Esta variable globalespecifica la cantidad secundaria de pistas para el conjunto de datosTSO que se utilizará para almacenar los resultados del mandatoEXPORTAR de QMF.

Los valores pueden ser desde cero hasta el tamaño máximo quepermitan el dispositivo de almacenamiento y el sistema operativo.El valor por omisión es 105 pistas.

Los conjuntos de datos PS y PDS pueden tener un valor máximo de65535 pistas; los conjuntos de datos PDSE pueden tener un valormáximo de 16777215 pistas.

DSQEC_DSLRECL1 Ninguna 05 Especifica la longitud de registro lógico (LRECL) que se va autilizar cuando se exporta una consulta SQL o un procedimientoQMF a un nuevo conjunto de datos. Los valores válidos son de 79 a32760.

El valor por omisión es 79.

DSQEC_EXPL_MODE Ninguna 07 Especifica el valor que se va a utilizar para el registro especial deDB2 CURRENT EXPLAIN MODE cuando se emita el mandatoEJECUTAR CONSULTA. El registro especial controla elcomportamiento del recurso de EXPLAIN para sentencias de SQLdinámico elegibles. Antes de ejecutar una consulta, QMF estableceel registro especial CURRENT EXPLAIN MODE en el valorespecificado por esta variable global.

Los valores válidos para esta variable global son:

NO El recurso de EXPLAIN está inhabilitado y no se capturainformación de EXPLAIN cuando se ejecutan sentenciasdinámicas explicables. Es el valor predeterminado.

SI El recurso de EXPLAIN está habilitado y la información deEXPLAIN se inserta en las tablas de EXPLAIN para sentenciasSQL dinámicas elegibles una vez que se haya preparado yejecutado la sentencia. Todas las sentencias SQL dinámicas secompilan y ejecutan.

EXPLAINEl recurso de EXPLAIN está habilitado y la información deEXPLAIN se inserta en las tablas de EXPLAIN para sentenciasSQL dinámicas elegibles una vez que se haya preparado lasentencia. Las sentencias dinámicas, excepto las sentencias SET,no se ejecutan.

Para los servidores que no sean DB2 para Linux, UNIX ni Windowso DB2 10 para z/OS (Modalidad de nueva función) o posterior, elúnico valor válido es NO.

232 Developing DB2 QMF applications

||

|||||||

|

||||||||||

|

||||

||||||

|||||||||

Page 245: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_EXTND_STG Ninguna 31 Especifica el número de megabytes de almacenamiento ampliadoque QMF adquirirá en cada solicitud para el gestor dealmacenamiento ampliado cuando el parámetro de programaDSQSPTYP se establezca en 64BIT. Este parámetro de programasólo está disponible en QMF para TSO.

Cuando una operación requiere almacenamiento ampliado, QMFsolicita la cantidad especificada hasta que la operación se completao el almacenamiento ampliado se agota.

Cuando se establece esta variable global, tenga en cuenta el tamañomedio de los objetos DATOS con los que trabaja el usuario de QMF.Si el tamaño medio es grande y establece la variable en un valorbajo, QMF emite muchas llamadas al gestor de almacenamientoampliado para completar el objeto DATOS. Estas llamadas repetidaspueden afectar al rendimiento.

Los valores pueden ser de 1 a 1000. El valor por omisión es 25, loque indica que QMF solicita 25 MB de almacenamiento en cadasolicitud.

DSQEC_FORM_LANG Ninguna 01 Establece el idioma NLF predeterminado en un formato guardado,exportado o importado; los valores pueden ser:

0 El formato utiliza el idioma preferente de NLF.

1 El formato utiliza el inglés. Este valor es el valor por omisión.

DSQEC_ISOLATION Ninguna 01 Nivel de aislamiento de consultas por omisión.

Los valores pueden ser:

0 Nivel de aislamiento UR (lectura no confirmada)

La lectura no confirmada puede ser útil en un entornodistribuido. Sin embargo, si utiliza una lectura no confirmada,todos los informes que los usuarios ven pueden contener datossuprimidos de la base de datos una vez que se hayavisualizado el informe.

1 Nivel de aislamiento CS (estabilidad de cursor).

Este valor es el valor por omisión. Cuando se utiliza laestabilidad de cursor, QMF no muestra el informe hasta queno se hayan completado todos los mandatos de base de datosque afectan a los datos del informe.

Apéndice B. Variables globales de QMF 233

Page 246: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_KEEP_THREAD Ninguna 01 Especifica si una hebra se libera o mantiene activa al final de unaconsulta.

Esta variable global no afecta a hebras creadas para procedimientosque se ejecutan en modalidad de proceso por lotes ni a hebrascreadas cuando QMF se conecta a una base de datos remotamediante el mandato CONECTAR. Cuando los procedimientos seejecutan en modalidad de proceso por lotes, las hebras persistenhasta que el procedimiento se completa. Cuando QMF se conecta auna base de datos remota, las hebras persisten hasta que laconexión finaliza.

Los valores válidos para esta variable global son:

0 La hebra se libera al final de la consulta. Es el valorpredeterminado.

Si se utiliza este valor, la sentencia SET variable global DB2fallará a menos que se ejecute en una de las situacionessiguientes:

v La sentencia se incluye en un procedimiento que se ejecutaen modalidad de proceso por lotes. La variable global DB2se restablece a su valor predeterminado una vez que secompleta el procedimiento.

v El mandato CONECTAR de QMF se emite para conectar auna base de datos remota y la sentencia SET variable globalDB2 se ejecuta en la base de datos remota.

v La sentencia SET variable global DB2 se incluye en unaconsulta de varias sentencias y la variable global de QMFDSQEC_RUN_MQ se establece en 1. La variable global DB2se restablece a su valor predeterminado una vez que secompleta la consulta.

1 La hebra se mantiene activa hasta el final de la sesión de QMFo la variable global DSQEC_KEEP_THREAD se establece en 0.Este valor permite a los usuarios ejecutar la sentencia SETvariable global DB2 para establecer variables globales DB2.

Si establece alguna variable global DB2 mientrasDSQEC_KEEP_THREAD está establecida en 1 y a continuacióncambia DSQEC_KEEP_THREAD a 0, estas variables globales DB2vuelven a sus valores por omisión.

234 Developing DB2 QMF applications

|||||

||||||||

|

|||

|||||||||||||||

|||||

||||

Page 247: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_LAST_RUN Ninguna 01 Especifica el conjunto de mandatos que causan que se actualice elcampo LAST_USED de las listas de objetos QMF. Este campo sebasa en la columna LAST_USED de la tabla de controlQ.OBJECT_DIRECTORY. Los valores posibles son:

0 QMF actualiza la indicación de fecha y hora LAST_USED cadavez que se emite cualquiera de los mandatos siguientes:v CONVERTIRv VISUALIZARv EXPORTARv IMPORTARv DISEÑARv IMPRIMIRv EJECUTARv SALVAR

Este valor es el valor por omisión.

1 QMF restringe las actualizaciones de la indicación de fecha yhora LAST_USED únicamente a los mandatos EJECUTAR,SALVAR e IMPORTAR.

2 QMF restringe las actualizaciones de la indicación de fecha yhora LAST_USED únicamente al mandato EJECUTAR.

DSQEC_LIST_OWNER Ninguna 128 Proporciona el valor predeterminado para el parámetro OWNERdel mandato LISTAR. Especifique un ID de autorización con unalongitud de hasta 128 caracteres. Por omisión esta variable está enblanco, lo que resulta en una lista de objetos de la que espropietario el ID de autorización actual.

Puede emplear símbolos de selección en el valor de variable. Utiliceun subrayado (_) en lugar de un solo carácter y un signo deporcentaje (%) en lugar de cero o más caracteres. Por ejemplo, elmandato siguiente seguido por un mandato LISTAR indica a QMFque liste todos los objetos propiedad de los ID de usuario queempiezan por los caracteres RO:

SET GLOBAL (DSQEC_LIST_OWNER=RO%

El siguiente mandato establece el propietario predeterminado encualquier ID de usuario que empiece por I, que tengan cualquiercarácter en la segunda posición y con cualquier carácter en lasposiciones restantes:

SET GLOBAL (DSQEC_LIST_OWNER=I_%

El valor que se establece con esta variable global no se aplica a laslistas visualizadas al pulsar la tecla Listar en los paneles de QMFdistintos al panel inicial.

Apéndice B. Variables globales de QMF 235

|||

Page 248: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_LOB_COLMAX Ninguna 10 Especifica el tamaño máximo de datos de una columna LOB que seva a recuperar, en bytes, hasta el tamaño máximo de LOB de2147483637, o 2 GB.

Por omisión se recuperan metadatos LOB en lugar de datos LOB.Sin embargo, si se especifica un código de edición distinto de M osi la variable global DSQEC_LOB_RETRV se establece en 3, serecuperan datos LOB en lugar de metadatos. En este caso, si unusuario consulta una tabla que contiene datos LOB con un tamañomayor al máximo, se emite un error y no se visualizan datos deinforme. Si un usuario emite un mandato EXPORTAR TABLA,IMPRIMIR TABLA, SALVAR DATOS O EXPORTAR DATOS parauna tabla u objeto de datos que contiene datos LOB con un tamañomayor al máximo, se emite un error y se termina el mandato.

El valor por omisión es 0, lo que especifica que no hay ningúnmáximo.

DSQEC_LOB_RETRV Ninguna 01 Especifica cómo se recuperan los datos o metadatos LOB. Losvalores válidos son:

1 Visualiza metadatos LOB en los resultados. Para visualizar losdatos LOB reales, puede cambiar el código de edición M a otrocódigo de edición. Cuando se especifica este valor, QMF utilizaubicadores de LOB para acceder a los datos LOB. Este es elvalor por omisión.

2 Visualiza metadatos LOB sólo en los resultados. El código deedición M es el único código de edición válido para datosLOB. Cuando se especifica este valor, QMF no utilizaubicadores de LOB.

3 Recupera y visualiza datos LOB reales en los resultados.Cuando se especifica este valor, QMF no utiliza ubicadores deLOB para acceder a datos LOB.

DSQEC_LOB_SAVE Ninguna 01 Especifica si los usuarios pueden salvar datos LOB en una tablautilizando el mandato SALVAR DATOS o IMPORTAR DATOS deQMF. Los valores válidos son:

0 - Inhabilitar Salvar LOBEspecifica que los usuarios no pueden emitir los mandatosSALVAR DATOS o IMPORTAR TABLA de QMF para salvardatos en una tabla en la base de datos si alguna columnacontiene datos LOB. Se visualiza un mensaje de error y no sesalvan datos si existe una columna LOB.

1 - Habilitar Salvar LOBEspecifica que los usuarios pueden salvar datos LOB en unatabla en la base de datos mediante los mandatos SALVARDATOS o IMPORTAR TABLA de QMF. Es el valorpredeterminado.

DSQEC_NLFCMD_LANG Ninguna 01 Establece el idioma de NLF esperado para los mandatos. Losvalores pueden ser:

0 Los mandatos deben estar en el idioma NLF preferente. Estevalor es el valor por omisión.

1 Los mandatos deben estar en inglés.

236 Developing DB2 QMF applications

||||||

||||||||||

||

|||||

||||||

|||||

||||

||||||

||||||

|||||

Page 249: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_PO Ninguna 01 Especifica el tipo de conjunto de datos particionado (PO) que secreará al exportar un objeto de QMF a un nuevo conjunto de datosde TSO. Los valores pueden ser:

0 Asigna un conjunto de datos del tipo que se lista como elvalor por omisión para el propio sitio. Este tipo se especificaen el miembro IGDSMSxx de SYS1.PARMLIB. Este es el valorpor omisión.

1 Asigna un conjunto de datos PDS para los datos exportados.

2 Asigna un conjunto de datos PDSE para los datos exportados.

DSQEC_PRO_ENABLE Ninguna 01 Controla si se visualiza un panel de confirmación antes de queQMF sobrescriba o descarte el contenido de las áreas dealmacenamiento temporal de CONSULTA, FORMATO, PROC oPERFIL. Los valores posibles son:

0 No se visualiza ningún panel de confirmación antes de que sesobrescriba el contenido de las áreas de almacenamientotemporal soportadas. Este valor es el valor por omisión.

1 Se visualiza un panel de confirmación si la variable global quecorresponde al área de almacenamiento temporal en cuestióntambién se establece en 1. Las siguientes variables globalescontrolas de forma individual sobrescrituras en cada una delas áreas de almacenamiento temporal soportadas:

v DSQEC_PRO_FORM controla sobrescrituras del área dealmacenamiento temporal de FORMATO, que almacenaespecificaciones de formato de informe de QMF actual.

v DSQEC_PRO_PROC controla sobrescrituras del área dealmacenamiento temporal PROC, que almacenaprocedimientos QMF actuales.

v DSQEC_PRO_PROF controla sobrescrituras del área dealmacenamiento temporal de PERFIL, que almacena valoresde perfiles de QMF actuales.

v DSQEC_PRO_QUERY controla sobrescrituras del área dealmacenamiento temporal de CONSULTA, que almacena laconsulta de QMF actual.

DSQEC_PRO_FORM Ninguna 01 Esta variable controla si se visualiza un panel de confirmación antesde que QMF sobrescriba o descarte el contenido del área dealmacenamiento temporal de FORMATO. La variable globalDSQEC_PRO_ENABLE debe establecerse en 1. Los valores posiblesson:

0 No se visualiza ningún panel de confirmación antes de que sedescarte el contenido del área de almacenamiento temporal.

1 Se visualiza un panel de confirmación, que proporciona alusuario la oportunidad de continuar o cancelar el mandatoque ha causado que se descarte la operación pendiente. Elcontenido del área de almacenamiento temporal puedeguardarse con el mandato SALVAR.

Apéndice B. Variables globales de QMF 237

Page 250: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_PRO_PROC Ninguna 01 Esta variable controla si se visualiza un panel de confirmación antesde que QMF sobrescriba o descarte el contenido del área dealmacenamiento temporal de PROC. La variable globalDSQEC_PRO_ENABLE debe establecerse en 1. Los valores posiblesson:

0 No se visualiza ningún panel de confirmación antes de que sedescarte el contenido del área de almacenamiento temporal.

1 Se visualiza un panel de confirmación antes de que se descarteel contenido del área de almacenamiento temporal. El usuariopuede continuar o cancelar el mandato que ha causado que sedescarte la operación pendiente. El contenido del área dealmacenamiento temporal puede guardarse con el mandatoSALVAR.

DSQEC_PRO_PROF Ninguna 01 Esta variable controla si se visualiza un panel de confirmación antesde que QMF sobrescriba o descarte el contenido del área dealmacenamiento temporal de PERFIL. La variable globalDSQEC_PRO_ENABLE debe establecerse en 1. Los valores posiblesson:

0 No se visualiza ningún panel de confirmación antes de que sedescarte el contenido del área de almacenamiento temporal.

1 Se visualiza un panel de confirmación antes de que se descarteel contenido del área de almacenamiento temporal. El usuariopuede continuar o cancelar el mandato que ha causado que sedescarte la operación pendiente. El contenido del área dealmacenamiento temporal puede guardarse con el mandatoSALVAR.

DSQEC_PRO_QUERY Ninguna 01 Esta variable controla si se visualiza un panel de confirmación antesde que QMF sobrescriba o descarte el contenido del área dealmacenamiento temporal de CONSULTA. La variable globalDSQEC_PRO_ENABLE debe establecerse en 1. Los valores posiblesson:

0 No se visualiza ningún panel de confirmación antes de que sedescarte el contenido del área de almacenamiento temporal.

1 Se visualiza un panel de confirmación antes de que se descarteel contenido del área de almacenamiento temporal. El usuariopuede continuar o cancelar el mandato que ha causado que sedescarte la operación pendiente. El contenido del área dealmacenamiento temporal puede guardarse con el mandatoSALVAR.

DSQEC_RERUN_IPROC Ninguna 01 Vuelve a ejecutar el procedimiento de invocación después delmandato FIN; los valores pueden ser:

0 Suprime la reejecución del procedimiento de invocacióndespués del mandato FIN.

1 Vuelve a ejecutar el procedimiento de invocación después delmandato FIN. Este valor es el valor por omisión.

Si inicia QMF con un procedimiento de invocación, establezca estavariable en '0'; QMF termina en lugar de volver a ejecutar elprocedimiento.

238 Developing DB2 QMF applications

Page 251: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_RESET_RPT Ninguna 31 Determina si QMF informa o no al usuario cuando parece que unobjeto DATOS incompleto del almacenamiento temporal afecta alrendimiento; los valores posibles son:

0 El panel de solicitud Restaurar Informe no se visualiza y QMFcompleta el informe en ejecución. Este es el valor por omisión.

1 El panel de solicitud Restaurar Informe se visualiza; este panelpregunta al usuario si desea completar o restaurar el informeque está actualmente en ejecución antes de iniciar el nuevomandato.

2 El panel de solicitud Restaurar Informe no se visualiza y QMFrestablece el informe en ejecución actualmente.

DSQEC_RUN_MQ Ninguna 01 Especifica si el mandato EJECUTAR CONSULTA da soporte avarias sentencias en una consulta SQL. Los valores posibles son:

0 No se da soporte a varias sentencias SQL. Si establece estavariable en 0 y ejecuta una consulta SQL que contiene variassentencias, QMF ignora todas las sentencias después delprimer punto y coma. Este valor es el valor por omisión.

1 Se da soporte a varias sentencias SQL. Se debe poner un puntoy coma al final de cada sentencia excepto en la última.Restricciones: Aunque se puede incluir una sentencia SELECTcon otras sentencias de una consulta, solo se puede incluir unasentencia SELECT por consulta. Las sentencias CALL yCREATE PROCEDURE deben utilizarse solas en una consultaSQL.

Apéndice B. Variables globales de QMF 239

|||||

Page 252: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_SESSGLV_SAV Ninguna 01 Controla si la entrada del usuario en algunos campos de entrada dedatos de algunos paneles se salva en las sesiones de QMF y de unaa otra. La entrada de usuario se salva como variables de sesión quese almacenan en la tabla Q.GLOBAL_VARS como variables globalesque se especifican con un prefijo DXY. La variable globalDSQEC_SESSGLV_SAV se comprueba durante toda la sesión, asícomo cuando se inicia y se sale de QMF. Los valores válidos son:

0 Si se especifica este valor cuando se inicia QMF, todas lasvariables de sesión se suprimen de la tabla Q.GLOBAL_VARS.

Si este valor se especifica durante la sesión de QMF, todas lasvariables de sesión se suprimen del almacenamiento. No sesalva ninguna variable de sesión durante el resto de la sesiónactual a menos que este valor se cambie a 1 o 2.

Si se especifica este valor cuando se sale de QMF, todas lasvariables de sesión se suprimen de la tabla Q.GLOBAL_VARS,lo que significa que no persiste ninguna entrada de usuario ala siguiente sesión de QMF.

Es el valor predeterminado.

1 Si se especifica este valor cuando se inicia QMF, todas lasvariables de sesión para el usuario se restauran de la tablaQ.GLOBAL_VARS.

Si se especifica este valor durante una sesión de QMF, lasvariables de sesión se salvan durante el resto de la sesiónactual. Por ejemplo, si especifica valores en el panel Solicitudde mandato LISTAR, sale del panel LISTAR y vuelve a dichopanel en la misma sesión, estos campos se llenan con losvalores especificados anteriormente.

Si se especifica este valor cuando se sale de QMF, se descartantodas las variables de sesión creadas o cambiadas por elusuario durante la sesión actual y no se salvan en la tablaQ.GLOBAL_VARS. Todos los valores de variables de sesiónque existían en la tabla Q.GLOBAL_VARS antes de la sesiónactual permanecen sin cambios. Puede utilizar esta opción, porejemplo, para reinicializar los mismos valores de variable desesión al inicio de cada sesión de QMF.

Cuando se inicia la siguiente sesión de QMF, el valor vuelve a0 a menos que se altere temporalmente mediante una variableglobal inicial establecida por un administrador.

2 Si se especifica este valor cuando se inicia QMF, todas lasvariables de sesión para el usuario se restauran de la tablaQ.GLOBAL_VARS.

Si se especifica este valor durante una sesión de QMF, lasvariables de sesión se salvan durante el resto de la sesiónactual a menos que este valor se cambie a 0. Por ejemplo, siespecifica valores en el panel Solicitud de mandato LISTAR,sale del panel LISTAR y vuelve a dicho panel en la mismasesión, estos campos se llenan con los valores especificadosanteriormente.

Si se especifica este valor cuando se sale de QMF, se salvantodas las variables de sesión en la tabla Q.GLOBAL_VARS, loque significa que cualquier entrada de usuario salvada durantela sesión también persiste a la siguiente sesión de QMF.

Este parámetro se aplica a la mayoría de los campos en paneles desolicitud de mandatos a los que se accede mediante los mandatossiguientes: CONECTAR, CONVERTIR, VISUALIZAR, DESCRIBIR,EDITAR, BORRAR, EXPORTAR, IMPORTAR, LISTAR, IMPRIMIR,RESTABLECER, EJECUTAR, SALVAR, ESTABLECER y MOSTRAR.

240 Developing DB2 QMF applications

||||||||||

|||

||||

||||

|

||||

||||||

||||||||

|||

||||

|||||||

||||

|||||

Page 253: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_SHARE Ninguna 31 Especifica el valor predeterminado para el parámetro COMPARTIR;los valores posibles son:

0 No compartir datos con otros usuarios.

1 Compartir datos con otros usuarios.

DSQEC_SP_RS_NUM Ninguna 04 Indica qué conjunto de resultados devuelto por un procedimientoalmacenado se debe utilizar para crear el informe. Los valoresposibles son:

0 Ignora los conjuntos de resultados.

1 Devuelve el primer conjunto de resultados.

2 Devuelve el segundo conjunto de resultados.

n Devuelve el conjunto de resultados n. El valor máximo para nes 63.

ALLDevuelve todos los conjuntos de resultados.

DSQEC_SQLQRYSZ_2M Ninguna 01 Controla si el mandato EJECUTAR CONSULTA da soporte aconsultas SQL con una longitud superior a 32.767 bytes (32 KB).

0 Las consultas SQL dirigidas a bases de datos DB2 para z/OS,DB2 para iSeries y DB2 para Linux, UNIX y Windows selimitan a 32.767 bytes (32 KB). Este valor es el valor poromisión.

1 Las consultas SQL pueden ser superiores a 32 KB. El máximotamaño de consulta soportado varía en función del tipo debase de datos al que se dirige la consulta:

v Las consultas dirigidas a DB2 para z/OS pueden tener unalongitud de hasta 2 MB.

v Las consultas dirigidas a DB2 para iSeries o DB2 para Linux,UNIX y Windows pueden tener hasta 65 KB de longitud.

Estos valores máximos dan por supuesto que la versión debase de datos a la que se dirige el mandato EJECUTARCONSULTA da soporte a consultas de este tamaño. Lasconsultas SQL dirigidas a DB2 para VSE y VM tienen unalimitación de 8 KB.

Es posible que sea necesario realizar personalización adicional paraejecutar consultas con una longitud mayor a 32 KB desde QMFpara CICS.

DSQEC_TABS_LDB2 Ninguna 31 Vista para recuperar listas de tablas y vistas en el servidor actual, sies DB2 para z/OS o DB2 para Linux, UNIX y Windows

DSQEC_TABS_RDB2 Ninguna 31 Vista para recuperar listas de tablas o vistas en subsistemas DB2remotos.

DSQEC_TABS_SQL Ninguna 31 Vista para recuperar listas de tablas y vistas para una base de datosDB2 para VSE y VM.

Apéndice B. Variables globales de QMF 241

Page 254: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_TWO_GB_ROW Ninguna 01 Controla la longitud de filas devueltas en informes de QMF. Utiliceuno de los siguientes valores:

0 Limita la longitud de una fila de datos de un informe de QMFa 32 KB, a menos que el informe contenga una columna XMLo LOB.

1 Permite que la longitud de una fila de datos sea superior a 32KB, hasta una longitud máxima de 2 GB.

Importante:

v Independientemente del valor de la variable globalDSQEC_TWO_GB_ROW, por omisión se pueden visualizar hasta2 GB de datos XML, CLOB o BLOB, y hasta 1 GB de datosDBCLOB. Sin embargo, la longitud máxima de una fila LOB sepuede restringir mediante la variable globalDSQEC_LOB_COLMAX.

v Independientemente del valor de la variable globalDSQEC_TWO_GB_ROW, una única tabla no puede tener untamaño de registro máximo mayor que el tamaño de página. DB2almacena registros dentro de páginas con un tamaño de 4 KB, 8KB, 16 KB o 32 KB. Por lo tanto, la longitud máxima de una filade datos que se visualiza continúa siendo de 32 KB cuando sevisualizan o seleccionan datos de una única tabla. Si visualiza oselecciona datos de una vista que une dos o más tablas, lalongitud de fila puede tener una longitud de hasta 2 GB.

Debido a estas consideraciones sobre el tamaño de página, lalongitud de una fila de datos en un informe de QMF que puedeguardarse con el mandato SALVAR DATOS también tiene unlímite de 32 KB. La posibilidad de salvar datos LOB la controla lavariable global DSQEC_LOB_SAVE.

242 Developing DB2 QMF applications

|||

||||||

||

Page 255: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 57. Variables globales que controlan cómo se ejecutan los mandatos y los procedimientos (continuación)

Nombre de variable de lainterfaz invocable

Nombre devariable de la

interfaz demandato Longitud Descripción

DSQEC_USERGLV_SAV Ninguna 01 Determina si las variables globales creadas o modificadas por elusuario, incluidas aquellas que empiezan con “DSQ”, se salvancuando finaliza la sesión de QMF. Los valores que se salvarán sealmacenan en la tabla Q.GLOBAL_VARS y se asocian con el ID deusuario de la sesión. Si se salvan los valores, se restaurarán cuandose inicie la siguiente sesión de QMF del usuario. Los valores válidosson:

0 Cuando se sale de QMF, se suprimen todas las variablesglobales de la tabla Q.GLOBAL_VARS y no se salva ningunavariable global de la sesión actual en la tablaQ.GLOBAL_VARS. Es el valor predeterminado.

1 Cuando se sale de QMF, todas las variables globales creadas ocambiadas por el usuario durante la sesión actual se descartany no se salvan en la tabla Q.GLOBAL_VARS. Todos los valoresde variables globales que ya estaban en la tablaQ.GLOBAL_VARS continúan tal como estaban antes de lasesión de QMF actual. Puede utilizar esta opción, por ejemplo,para reinicializar los mismos valores de variables globales alinicio de cada sesión de QMF.

Cuando se inicia la siguiente sesión de QMF, el valor vuelve a0 a menos que se altere temporalmente mediante una variableglobal inicial establecida por un administrador.

2 Cuando se sale de QMF, todas las variables globales creadas ocambiadas por el usuario se salvan en la tablaQ.GLOBAL_VARS. Cuando el usuario inicie de nuevo QMF, serestaurarán las variables globales salvadas de la sesión anteriordel usuario. Los valores definidos por un administrador en latabla Q.GLOBAL_VARS se reemplazan con los valores delusuario, a menos que se haya definido la variable como desólo lectura.

Apéndice B. Variables globales de QMF 243

||||||||||

|||||

|||||||||

|||

|||||||||

Page 256: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Referencia relacionada:

Sentencia PREPARE para DB2Consulte la información sobre el atributo de resolución de acceso simultáneo de lasentencia PREPARE.Información relacionada:

SAVEEl mandato SAVE guarda en la base de datos de los objetos de la ubicación actualque actualmente están en el almacenamiento temporal de QMF™.

RUNEl mandato EJECUTAR ejecuta consultas o procedimientos desde elalmacenamiento temporal de QMF o desde la base de datos de la ubicación actual.

Instalación y gestión de DB2 QMF para TSO y CICSBusque información sobre la rutina de salida de inicialización DSQUOPTS y sobrela personalización necesaria para ejecutar consultas con un tamaño mayor de 32KB desde QMF para CICS.

Variables globales que almacenan los resultados de CONVERTIRCONSULTA

Variables globales DSQQC que reflejan los resultados de un mandato CONVERTIRCONSULTA. Ninguna de estas variables globales se puede modificar mediante elmandato FIJAR GLOBAL.

Tabla 58. Variables globales que reflejan los resultados de un mandato CONVERTIR CONSULTA

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQQC_LENGTH_nnn DSQCLnnn 05 Longitud del resultado convertido nnn.

DSQQC_QRY_COUNT DSQCQCNT 03 Número de consultas del resultadoconvertido; el valor debe ser siempre '1' amenos que la consulta original sea unaconsulta QBE I. o U.

DSQQC_QRY_LANG DSQCQLNG 01 Lenguaje de la consulta convertida; losvalores pueden ser:

1 para SQL

2 para QBE

3 para Solicitud

DSQQC_QRY_TYPE DSQCQTYP Noespecificado

Primera palabra de los resultadosconvertidos.

DSQQC_RESULT_nnn DSQCQnnn Noespecificado

nnn

244 Developing DB2 QMF applications

Page 257: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Variables globales que muestran información de los mensajes de errorde EJECUTAR CONSULTA

Las variables globales DSQQM almacenan los resultados de un mandatoEJECUTAR CONSULTA. Ninguna de estas variables globales se puede modificarmediante el mandato FIJAR GLOBAL.

Tabla 59. Variables globales que almacenan los resultados de un mandato EJECUTAR CONSULTA

Nombre de variable de lainterfaz invocable

Nombre de variable de lainterfaz de mandato Longitud Descripción

DSQQM_MESSAGE DSQCIQMG 80 Texto del mensaje de consulta.

DSQQM_MESSAGE_ALL DSQCIQMA 360 Texto del mensaje de consulta completo.

DSQQM_MSG_HELP DSQCIQID 08 ID del panel de ayuda del mensaje.

DSQQM_MSG_NUMBER DSQCIQNO 08 Número de mensaje.

DSQQM_SQL_RC DSQCISQL 16 El SQLCODE del último mandato o consulta.

DSQQM_SQL_STATE Ninguna 05 SQLSTATE asociado con el SQLCODE deDSQQM_SQL_RC si el gestor de la base dedatos devuelve el valor SQLSTATE.

DSQQM_SUB_TXT_nn DSQCIQnn 20 Valor de sustitución nn.

DSQQM_SUBST_VARS DSQCIQ00 04 Número de variables de sustitución.

Variables globales que almacenan valores de entrada de panelLas variables globales DXY almacenan los valores que entran los usuarios en loscampos de entrada de datos si la variable global DSQEC_SESSGLV_SAV seestablece en 1 o 2. Sólo se salvan los datos entrados en algunos campos de entradade algunos paneles. Los datos entrados por el usuario en los campos que no semuestran en la tabla siguiente no se salvarán, independientemente del valor de lavariable global DSQEC_SESSGLV_SAV.

Todas estas variables globales se pueden modificar mediante el mandato FIJARGLOBAL. Sin embargo, tenga cuidado al cambiar o suprimir estas variables porquesi lo hace se cambiarán los valores generados en los paneles de solicitud demandatos.

Tabla 60. Correlación entre variables globales DXY y nombres de campo de panel

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPCO1_ln 01 - 03 CONECTAR Usuario

DXYnPCO1_05 – CONECTAR Ubicación

DXYnPC03_01 – CONECTAR (CICS) Ubicación

DXYnPCNV_ln 02 - 07 CONVERTIR Nombre

DXYnPDSP_ln 02 - 07 VISUALIZAR Nombre

DXYnPDSP_ln_01 02 - 07 VISUALIZARCONSULTA

Nombre

DXYnPDSP_ln_02 02 - 07 VISUALIZAR PROC Nombre

Apéndice B. Variables globales de QMF 245

|

||||||

||||

||

|||||||||||

||||

||||

||||

||||

||||

|||||

||||

Page 258: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPDSP_ln_03 02 - 07 VISUALIZARFORMATO

Nombre

DXYnPDSP_ln_05 02 - 07 VISUALIZARINFORME

Nombre

DXYnPDSP_ln_07 02 - 07 VISUALIZARDIAGRAMA

Nombre

DXYnPDSP_ln_08 02 - 07 VISUALIZAR TABLA Nombre

DXYnPDRS_ln 01 - 06 DESCRIBIR Nombre

DXYnPDRS_07 – DESCRIBIR Tipo

DXYnPDRS_08 – DESCRIBIR Identificador

DXYnPEDT_01 – EDITAR Tipo

DXYnPED2_ln 01 - 06 EDITAR TABLA Nombre

DXYnPED2_07 – EDITAR TABLA Modalidad

DXYnPERA_ln 02 - 07 BORRAR Nombre

DXYnPERA_ln_01 02 - 07 BORRARCONSULTA

Nombre

DXYnPERA_ln_02 02 - 07 BORRAR PROC Nombre

DXYnPERA_ln_03 02 - 07 BORRAR FORMATO Nombre

DXYnPERA_ln_08 02 - 07 BORRAR TABLA Nombre

DXYnPEXM_ln 02 - 07 EXPORTAR Nombre

DXYnPEXM_ln_01 02 - 07 EXPORTARCONSULTA

Nombre

DXYnPEXM_ln_02 02 - 07 EXPORTAR PROC Nombre

DXYnPEXM_ln_03 02 - 07 EXPORTARFORMATO

Nombre

DXYnPEXM_ln_05 02 - 07 EXPORTARINFORME

Nombre

DXYnPEXM_ln_06 02 - 07 EXPORTAR DATOS Nombre

DXYnPEXM_ln_07 02 - 07 EXPORTARDIAGRAMA

Nombre

DXYnPEXM_ln_08 02 - 07 EXPORTAR TABLA Nombre

DXYnPXM1_ln 01 - 05 EXPORTAR, luegoIntro (en TSO)

A

DXYnPXM1_ln_01 01 - 05 EXPORTARCONSULTA, luegoIntro (en TSO)

A

DXYnPXM1_ln_02 01 - 05 EXPORTAR PROC,luego Intro (en TSO)

A

246 Developing DB2 QMF applications

||

|||||||||||

|||||

|||||

|||||

||||

||||

||||

||||

||||

||||

||||

||||

|||||

||||

||||

||||

||||

|||||

||||

|||||

|||||

||||

|||||

||||

|||||

|||||

|

|||||

Page 259: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPXM1_06 – EXPORTAR, luegoIntro (en TSO)

Miembro

DXYnPXM1_06_01 – EXPORTARCONSULTA, luegoIntro (en TSO)

Miembro

DXYnPXM1_06_02 – EXPORTAR PROC,luego Intro (en TSO)

Miembro

DXYnPXM2_01_07 – EXPORTARDIAGRAMA, luegoIntro (en TSO)

Miembro

DXYnPXM3_ln_05 01 - 05 EXPORTARINFORME, luegoIntro (en TSO)

A

DXYnPXM3_06_05 – EXPORTARINFORME, luegoIntro (en TSO)

Miembro

DXYnPXM3_08_05 – EXPORTARINFORME, luegoIntro (en TSO)

Formadatos

DXYnPXM4_ln_06 01 - 05 EXPORTAR DATOS,luego Intro (en TSO)

A

DXYnPXM4_06_06 – EXPORTAR DATOS,luego Intro (en TSO)

Miembro

DXYnPXM4_08_06 – EXPORTAR DATOS,luego Intro (en TSO)

Formadatos

DXYnPXM4_09_06 – EXPORTAR DATOS,luego Intro (en TSO)

Modsalida

DXYnPXM4_10_06 – EXPORTAR DATOS,luego Intro (en TSO)

Encabezado

DXYnPXM5_ln_03 01 - 05 EXPORTARFORMATO, luegoIntro (en TSO)

A

DXYnPXM5_06_03 – EXPORTARFORMATO, luegoIntro (en TSO)

Miembro

DXYnPXM5_08_03 – EXPORTARFORMATO, luegoIntro (en TSO)

Idioma

DXYnPXC1_01 – EXPORTAR, luegoIntro (en CICS)

Nomb cola

Apéndice B. Variables globales de QMF 247

||

|||||||||||

|||||

|||||

|

|||||

|||||

|

|||||

|

|||||

|

|||||

|

|||||

|||||

|||||

|||||

|||||

|||||

|

|||||

|

|||||

|

|||||

Page 260: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPXC1_01_01 – EXPORTARCONSULTA, luegoIntro (en CICS)

Nomb cola

DXYnPXC1_01_02 – EXPORTAR PROC,luego Intro (en CICS)

Nomb cola

DXYnPXC1_02 – EXPORTAR, luegoIntro (en CICS)

Tipo cola

DXYnPXC1_02_01 – EXPORTARCONSULTA, luegoIntro (en CICS)

Tipo cola

DXYnPXC1_02_02 – EXPORTAR PROC,luego Intro (en CICS)

Tipo cola

DXYnPXC1_04 – EXPORTAR, luegoIntro (en CICS)

Suspender

DXYnPXC1_04_01 – EXPORTARCONSULTA, luegoIntro (en CICS)

Suspender

DXYnPXC1_04_02 – EXPORTAR PROC,luego Intro (en CICS)

Suspender

DXYnPXC3_01_05 – EXPORTARINFORME, luegoIntro (en CICS)

Nomb cola

DXYnPXC3_02_05 – EXPORTARINFORME, luegoIntro (en CICS)

Tipo cola

DXYnPXC3_04_05 – EXPORTARINFORME, luegoIntro (en CICS)

Suspender

DXYnPXC3_05_05 – EXPORTARINFORME, luegoIntro (en CICS)

Formadatos

DXYnPXC4_01_06 – EXPORTAR DATOS,luego Intro (en CICS)

Nomb cola

DXYnPXC4_02_06 – EXPORTAR DATOS,luego Intro (en CICS)

Tipo cola

DXYnPXC4_04_06 – EXPORTAR DATOS,luego Intro (en CICS)

Suspender

DXYnPXC4_05_06 – EXPORTAR DATOS,luego Intro (en CICS)

Formadatos

DXYnPXC4_06_06 – EXPORTAR DATOS,luego Intro (en CICS)

Modsalida

248 Developing DB2 QMF applications

||

|||||||||||

|||||

|

|||||

|||||

|||||

|

|||||

|||||

|||||

|

|||||

|||||

|

|||||

|

|||||

|

|||||

|

|||||

|||||

|||||

|||||

|||||

Page 261: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPXC4_07_06 – EXPORTAR DATOS,luego Intro (en CICS)

Encabezado

DXYnPXC5_01_03 – EXPORTARFORMATO, luegoIntro (en CICS)

Nomb cola

DXYnPXC5_02_03 – EXPORTARFORMATO, luegoIntro (en CICS)

Tipo cola

DXYnPXC5_04_03 – EXPORTARFORMATO, luegoIntro (en CICS)

Suspender

DXYnPXC5_05_03 – EXPORTARFORMATO, luegoIntro (en CICS)

Idioma

DXYnPIMM_ln 02 - 07 IMPORTAR (en TSO) Nombre

DXYnPIMM_ln_01 02 - 07 IMPORTARCONSULTA (en TSO)

Nombre

DXYnPIMM_ln_02 02 - 07 IMPORTAR PROC(en TSO)

Nombre

DXYnPIMM_ln_03 02 - 07 IMPORTARFORMATO (en TSO)

Nombre

DXYnPIMM_ln_06 02 - 07 IMPORTAR DATOS(en TSO)

Nombre

DXYnPIMM_ln_08 02 - 07 IMPORTAR TABLA(en TSO)

Nombre

DXYnPIMM_ln 08 - 13 IMPORTAR (en TSO) Desde

DXYnPIMM_ln_01 08 - 13 IMPORTARCONSULTA (en TSO)

Desde

DXYnPIMM_ln_02 08 - 13 IMPORTAR PROC(en TSO)

Desde

DXYnPIMM_ln_03 08 - 13 IMPORTARFORMATO (en TSO)

Desde

DXYnPIMM_ln_06 08 - 13 IMPORTAR DATOS(en TSO)

Desde

DXYnPIMM_ln_08 08 - 13 IMPORTAR TABLA(en TSO)

Desde

DXYnPIMM_14 – IMPORTAR (en TSO) Miembro

DXYnPIMM_14_01 – IMPORTARCONSULTA (en TSO)

Miembro

DXYnPIMM_14_02 – IMPORTAR PROC(en TSO)

Miembro

Apéndice B. Variables globales de QMF 249

||

|||||||||||

|||||

|||||

|

|||||

|

|||||

|

|||||

|

||||

|||||

|||||

|||||

|||||

|||||

||||

|||||

|||||

|||||

|||||

|||||

||||

|||||

|||||

Page 262: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPIMM_14_03 – IMPORTARFORMATO (en TSO)

Miembro

DXYnPIMM_14_06 – IMPORTAR DATOS(en TSO)

Miembro

DXYnPIMM_14_08 – IMPORTAR TABLA(en TSO)

Miembro

DXYnPIQF_03 – IMPORTAR, luegoIntro (en TSO)

Comentario

DXYnPIQF_03_01 – IMPORTARCONSULTA, luegoIntro (en TSO)

Comentario

DXYnPIQF_03_02 – IMPORTAR PROC,luego Intro (en TSO)

Comentario

DXYnPIQL_03_03 – IMPORTARFORMATO, luegoIntro (en TSO)

Comentario

DXYnPIQL_04_03 – IMPORTARFORMATO, luegoIntro (en TSO)

Idioma

DXYnPITB_01_08 – IMPORTAR TABLA,luego Intro (en TSO)

Comentario

DXYnPIMC_ln 02 - 07 IMPORTAR (enCICS)

Nombre

DXYnPIMC_ln_01 02 - 07 IMPORTARCONSULTA (enCICS)

Nombre

DXYnPIMC_ln_02 02 - 07 IMPORTAR PROC(en CICS)

Nombre

DXYnPIMC_ln_03 02 - 07 IMPORTARFORMATO (en CICS)

Nombre

DXYnPIMC_ln_06 02 - 07 IMPORTAR DATOS(en CICS)

Nombre

DXYnPIMC_ln_08 02 - 07 IMPORTAR TABLA(en CICS)

Nombre

DXYnPIMC_08 – IMPORTAR (enCICS)

Nomb cola

DXYnPIMC_08_01 – IMPORTARCONSULTA (enCICS)

Nomb cola

DXYnPIMC_08_02 – IMPORTAR PROC(en CICS)

Nomb cola

250 Developing DB2 QMF applications

||

|||||||||||

|||||

|||||

|||||

|||||

|||||

|

|||||

|||||

|

|||||

|

|||||

|||||

|||||

|

|||||

|||||

|||||

|||||

|||||

|||||

|

|||||

Page 263: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPIMC_08_03 – IMPORTARFORMATO (en CICS)

Nomb cola

DXYnPIMC_08_06 – IMPORTAR DATOS(en CICS)

Nomb cola

DXYnPIMC_08_08 – IMPORTAR TABLA(en CICS)

Nomb cola

DXYnPIMC_09 – IMPORTAR (enCICS)

Tipo cola

DXYnPIMC_09_01 – IMPORTARCONSULTA (enCICS)

Tipo cola

DXYnPIMC_09_02 – IMPORTAR PROC(en CICS)

Tipo cola

DXYnPIMC_09_03 – IMPORTARFORMATO (en CICS)

Tipo cola

DXYnPIMC_09_06 – IMPORTAR DATOS(en CICS)

Tipo cola

DXYnPIMC_09_08 – IMPORTAR TABLA(en CICS)

Tipo cola

DXYnPIMC_10 – IMPORTAR (enCICS)

Suspender

DXYnPIMC_10_01 – IMPORTARCONSULTA (enCICS)

Suspender

DXYnPIMC_10_02 – IMPORTAR PROC(en CICS)

Suspender

DXYnPIMC_10_03 – IMPORTARFORMATO (en CICS)

Suspender

DXYnPIMC_10_06 – IMPORTAR DATOS(en CICS)

Suspender

DXYnPIMC_10_08 – IMPORTAR TABLA(en CICS)

Suspender

DXYnPLST_01 – LISTAR(CONSULTAS,PROCS, FORMATOS,ANALITICA, QMF,TABLAS o TODOS)

Tipo

DXYnPLST_ln 02 - 04 LISTAR(CONSULTAS,PROCS, FORMATOS,ANALITICA, QMF,TABLAS o TODOS)

Propietario

Apéndice B. Variables globales de QMF 251

||

|||||||||||

|||||

|||||

|||||

|||||

|||||

|

|||||

|||||

|||||

|||||

|||||

|||||

|

|||||

|||||

|||||

|||||

|||||||

|

|||||||

|

Page 264: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPLST_ln 05 - 07 LISTAR(CONSULTAS,PROCS, FORMATOS,ANALITICA, QMF,TABLAS o TODOS)

Nombre

DXYnPLST_08 – LISTAR(CONSULTAS,PROCS, FORMATOS,ANALITICA, QMF,TABLAS o TODOS)

Ubicación

DXYnPPRT_ln 02 - 07 IMPRIMIR (en TSO) Nombre

DXYnPPRT_ln_01 02 - 07 IMPRIMIR QUERY(en TSO)

Nombre

DXYnPPRT_ln_02 02 - 07 IMPRIMIR PROC (enTSO)

Nombre

DXYnPPRT_ln_03 02 - 07 IMPRIMIRFORMATO (en TSO)

Nombre

DXYnPPRT_ln_04 02 - 07 IMPRIMIR PERFIL(en TSO)

Nombre

DXYnPPRT_ln_05 02 - 07 IMPRIMIRINFORME (en TSO)

Nombre

DXYnPPRT_ln_07 02 - 07 IMPRIMIRDIAGRAMA (enTSO)

Nombre

DXYnPPRT_ln_08 02 - 07 IMPRIMIR TABLA(en TSO)

Nombre

DXYnPPR2_01_07 – IMPRIMIRDIAGRAMA, luegoIntro (en TSO)

Impres

DXYnPPR3_01_01 – IMPRIMIRCONSULTA, luegoIntro (en TSO)

Impres

DXYnPPR3_01_02 – IMPRIMIR PROC,luego Intro (en TSO)

Impres

DXYnPPR3_01_03 – IMPRIMIRFORMATO, luegoIntro (en TSO)

Impres

DXYnPPR3_01_04 – IMPRIMIR PERFIL,luego Intro (en TSO)

Impres

DXYnPPR3_01_08 – IMPRIMIR TABLA,luego Intro (en TSO)

Impres

252 Developing DB2 QMF applications

||

|||||||||||

|||||||

|

|||||||

|

||||

|||||

|||||

|||||

|||||

|||||

|||||

|

|||||

|||||

|

|||||

|

|||||

|||||

|

|||||

|||||

Page 265: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPPR4_01_05 – IMPRIMIRINFORME, luegoIntro (en TSO)

Impres

DXYnPPR5_ln 02 - 07 IMPRIMIR (en CICS) Nombre

DXYnPPR5_ln_01 02 - 07 IMPRIMIRCONSULTA (enCICS)

Nombre

DXYnPPR5_ln_02 02 - 07 IMPRIMIR PROC (enCICS)

Nombre

DXYnPPR5_ln_03 02 - 07 IMPRIMIRFORMATO (en CICS)

Nombre

DXYnPPR5_ln_04 02 - 07 IMPRIMIR PERFIL(en CICS)

Nombre

DXYnPPR5_ln_05 02 - 07 IMPRIMIRINFORME (en CICS)

Nombre

DXYnPPR5_ln_07 02 - 07 IMPRIMIRDIAGRAMA (enCICS)

Nombre

DXYnPPR5_ln_08 02 - 07 IMPRIMIR TABLA(en CICS)

Nombre

DXYnPPR5_08 – IMPRIMIR (en CICS) Nomb cola

DXYnPPR5_08_01 – IMPRIMIRCONSULTA (enCICS)

Nomb cola

DXYnPPR5_08_02 – IMPRIMIR PROC (enCICS)

Nomb cola

DXYnPPR5_08_03 – IMPRIMIRFORMATO (en CICS)

Nomb cola

DXYnPPR5_08_04 – IMPRIMIR PERFIL(en CICS)

Nomb cola

DXYnPPR5_08_05 – IMPRIMIRINFORME (en CICS)

Nomb cola

DXYnPPR5_08_07 – IMPRIMIRDIAGRAMA (enCICS)

Nomb cola

DXYnPPR5_08_08 – IMPRIMIR TABLA(en CICS)

Nomb cola

DXYnPPR5_09 – IMPRIMIR (en CICS) Tipo cola

DXYnPPR5_09_01 – IMPRIMIRCONSULTA (enCICS)

Tipo cola

Apéndice B. Variables globales de QMF 253

||

|||||||||||

|||||

|

||||

|||||

|

|||||

|||||

|||||

|||||

|||||

|

|||||

||||

|||||

|

|||||

|||||

|||||

|||||

|||||

|

|||||

||||

|||||

|

Page 266: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPPR5_09_02 – IMPRIMIR PROC (enCICS)

Tipo cola

DXYnPPR5_09_03 – IMPRIMIRFORMATO (en CICS)

Tipo cola

DXYnPPR5_09_04 – IMPRIMIR PERFIL(en CICS)

Tipo cola

DXYnPPR5_09_05 – IMPRIMIRINFORME (en CICS)

Tipo cola

DXYnPPR5_09_07 – IMPRIMIRDIAGRAMA (enCICS)

Tipo cola

DXYnPPR5_09_08 – IMPRIMIR TABLA(en CICS)

Tipo cola

DXYnPPR5_10 – IMPRIMIR (en CICS) Suspender

DXYnPPR5_10_01 – IMPRIMIRCONSULTA (enCICS)

Suspender

DXYnPPR5_10_02 – IMPRIMIR PROC (enCICS)

Suspender

DXYnPPR5_10_03 – IMPRIMIRFORMATO (en CICS)

Suspender

DXYnPPR5_10_04 – IMPRIMIR PERFIL(en CICS)

Suspender

DXYnPPR5_10_05 – IMPRIMIRINFORME (en CICS)

Suspender

DXYnPPR5_10_07 – IMPRIMIRDIAGRAMA (enCICS)

Suspender

DXYnPPR5_10_08 – IMPRIMIR TABLA(en CICS)

Suspender

DXYnPRST_01 – RESTAURAR Tipo

DXYnPRSG_01 – RESTAURARGLOBAL

Entre Todo ...

DXYnPRSG_ln 02 - 11 RESTAURARGLOBAL

Nombre de variableglobal

DXYnPRUN_ln 02 - 07 EJECUTAR Nombre

DXYnPRUN_ln_01 02 - 07 EJECUTARCONSULTA

Nombre

DXYnPRUN_ln_02 02 - 07 EJECUTAR PROC Nombre

254 Developing DB2 QMF applications

||

|||||||||||

|||||

|||||

|||||

|||||

|||||

|

|||||

||||

|||||

|

|||||

|||||

|||||

|||||

|||||

|

|||||

||||

|||||

||||||

||||

|||||

||||

Page 267: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Tabla 60. Correlación entre variables globales DXY y nombres de campo depanel (continuación)

Nombre de variableglobal (donde n s unidentificador deidioma nacional y lnes un ID asociadocon una línea de uncampo de variaslíneas) Rango de valores ln Mandato Nombre de campo

DXYnPRU3_ln 01 - 06 EJECUTARCONSULTA, luegoIntro

Formato

DXYnPRU4_01 – EJECUTAR PROC,luego Intro

Arg

DXYnPSAV_01 – SALVAR Tipo

DXYnPSA2_ln 01 - 06 SALVAR DATOS Nombre

DXYnPSA2_08 – SALVAR DATOS Comentario

DXYnPSA3_ln_01 01 - 06 SALVAR CONSULTA Nombre

DXYnPSA3_ln_02 01 - 06 SALVAR PROC Nombre

DXYnPSA3_09_01 – SALVAR CONSULTA Comentario

DXYnPSA3_09_02 – SALVAR PROC Comentario

DXYnPSA4_ln 01 - 06 SALVAR FORMATO Nombre

DXYnPSA4_09 – SALVAR FORMATO Comentario

DXYnPSET_01 – FIJAR Tipo

DXYnPSGL_ln 01 - 19 (númerospares)

FIJAR GLOBAL Var

DXYnPSGL_ln 02 - 20 (númerosimpares)

FIJAR GLOBAL Valor

DXYnPSHO_01 – MOSTRAR Entre el nombre ...

Apéndice B. Variables globales de QMF 255

||

|||||||||||

|||||

|

|||||

||||

||||

||||

||||

||||

||||

||||

||||

||||

||||

|||||

|||||

|||||

Page 268: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

256 Developing DB2 QMF applications

Page 269: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Avisos

Esta información se ha desarrollado para productos y servicios que se ofrecen enEE.UU.

Es posible que, en otros países, IBM no ofrezca los productos, servicios ocaracterísticas descritos en este documento. Póngase en contacto con elrepresentante local de IBM para obtener información sobre los productos yservicios actualmente disponibles en su zona. Las referencias a servicios,programas o productos de IBM no pretenden establecer ni implicar que sólopuedan utilizarse dichos servicios, programas o productos de IBM. En su lugar, sepuede utilizar cualquier producto, programa o servicio que no infrinja ningúnderecho de propiedad intelectual de IBM. Sin embargo, es responsabilidad delusuario evaluar y comprobar el funcionamiento de cualquier producto, programa oservicio que no sea de IBM.

IBM puede tener patentes o solicitudes de patentes pendientes que afecten a lostemas que se tratan en este documento. La adquisición de este documento nootorga ninguna licencia sobre dichas patentes. Puede realizar consultas sobrelicencias, por escrito, a la siguiente dirección:

IBM Director of LicensingIBM CorporationNorth Castle DriveArmonk, NY 10504-1785EE.UU.

Para obtener información sobre licencias relacionadas con el juego de caracteres dedoble byte (DBCS), póngase en contacto con el Departamento de propiedadintelectual de IBM de su país o envíe sus consultas, por escrito, a:

Intellectual Property LicensingLegal and Intellectual Property LawIBM Japan, Ltd.19-21, Nihonbashi-Hakozakicho, Chuo-kuTokio 103-8510, Japón

El párrafo siguiente no se aplica en el Reino Unido ni en ningún otro país en elque tales disposiciones entren en contradicción con la legislación local:INTERNATIONAL BUSINESS MACHINES CORPORATION PROPORCIONAESTA PUBLICACIÓN "TAL CUAL", SIN GARANTÍA DE NINGUNA CLASE, NIEXPLÍCITA NI IMPLÍCITA, INCLUIDAS, PERO SIN LIMITARSE A ELLAS, LASGARANTÍAS IMPLÍCITAS DE NO VULNERACIÓN DE DERECHOS,COMERCIABILIDAD O IDONEIDAD PARA UN FIN DETERMINADO. Algunosestados no permiten el rechazo de garantías explícitas o implícitas en determinadastransacciones, por lo que es posible que esta declaración no se aplique en su caso.

Esta información puede incluir incorrecciones técnicas o errores tipográficos.Periódicamente se realizan cambios a esta información; estos cambios seincorporarán en nuevas ediciones de la publicación. IBM puede realizar mejorasy/o cambios en el producto o productos y/o en el programa o programas descritosen esta publicación en cualquier momento sin previo aviso:

© Copyright IBM Corp. 1982, 2013 257

|

Page 270: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Todas las referencias hechas en este documento a sitios web que no son de IBM seproporcionan únicamente a título informativo y no representan en modo algunouna recomendación de dichos sitios web. Los materiales de dichos sitios web noforman parte de los materiales para este producto de IBM y el uso de dichos sitiosweb corre a cuenta y riesgo del Cliente.

IBM puede utilizar o distribuir la información que se le proporcione del modo queestime apropiado sin incurrir por ello en ninguna obligación con el remitente.

Los propietarios de licencias de este programa que deseen obtener informaciónacerca del mismo, con el propósito de habilitar: (i) el intercambio de informaciónentre programas creados independientemente y otros programas (incluido éste) y(ii) el uso mutuo de la información intercambiada, deben ponerse en contacto con:

IBM CorporationJ46A/G4555 Bailey AvenueSan Jose, CA 95141-1003EE.UU.

Dicha información puede estar disponible, sujeta a los términos y condicionescorrespondientes, incluyendo en algunos el caso el pago de una tasa.

El programa bajo licencia que se describe en este documento y todo el materialbajo licencia disponible para este los proporciona IBM bajo los términos de lasCondiciones generales de IBM, el Acuerdo internacional de programas bajo licenciade IBM o cualquier otro acuerdo equivalente entre las partes.

LICENCIA DE COPYRIGHT:

Esta información contiene programas de aplicación de ejemplo en lenguaje fuente,en los que encontrará técnicas de programación sobre distintas plataformasoperativas. Puede copiar, modificar y distribuir estos programas de ejemplo encualquier formato sin abonar ninguna cantidad a IBM IBM, con el fin dedesarrollar, utilizar, comercializar o distribuir programas de aplicación conformes ala interfaz de programación de aplicación de la plataforma operativa para la que segraban los programas de ejemplo. Estos ejemplos no se han probadoexhaustivamente bajo todas las condiciones posibles. Por tanto IBM, no puedegarantizar la fiabilidad, la capacidad de servicio ni el funcionamiento de estosprogramas. Los programas de ejemplo se proporcionan "TAL CUAL", sin garantíasde ningún tipo. IBM no será responsable de los daños derivados del uso de losprogramas de ejemplo.

Información de la interfaz de programaciónThis publication documents intended Programming Interfaces that allow thecustomer to write programs to obtain the services of QMF.

Marcas registradasIBM, el logotipo de IBM e ibm.com son marcas comerciales o registradas deInternational Business Machines Corporation en los Estados Unidos, en otrospaíses o en ambos. Estos y otros términos con marcas registradas de IBM semarcan en su primera aparición en esta información con el símbolo adecuado (® o™), indicando que son marcas registradas en Estados Unidos o marcas de usocomercial por IBM en el momento en que se ha publicado esta información. Dichas

258 Developing DB2 QMF applications

Page 271: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

marcas registradas también pueden ser marcas registradas o marcas de usocomercial en otros países. Tiene disponible una lista completa y actualizada de lasmarcas registradas de IBM en la web en http://www.ibm.com/legal/copytrade.shtml.

Linux es una marca registrada de Linus Torvalds en los Estados Unidos y/o enotros países.

Microsoft, Windows, Windows NT y el logotipo de Windows son marcasregistradas de Microsoft Corporation en los Estados Unidos y/o en otros países.

UNIX es una marca registrada de The Open Group en Estados Unidos y en otrospaíses.

Otros nombres de compañías, productos y servicios pueden ser marcas registradaso marcas de servicio de otras empresas.

Avisos 259

Page 272: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

260 Developing DB2 QMF applications

Page 273: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Glosario de términos y acrónimos

terminación anómala de tarea (terminaciónanómala)

Terminación de una tarea, un trabajo o unsubsistema debido a una condición deerror que los recursos de recuperación nopueden resolver durante la ejecución.

espacio de direccionesRango de direcciones disponible para unproceso o programa del sistema. Elespacio de direcciones puede hacerreferencia a un almacenamiento físico, unalmacenamiento virtual o a ambos.

Advanced Program-to-Program CommunicationVéase APPC.

función agregadaCualquier función de un grupo defunciones que resume datos de unacolumna. En los paneles de formato sesolicitan con estos códigos de uso:PROMED, CALC, CUENTA, PRIMERO,ULTIMO, MAXIMO, MINIMO, DESSTD,SUMA, SUMAC, PORCEN, PORAC,TPORCEN, TPORAC.

variable de agregaciónFunción de agregación que se sitúa en uninforme utilizando los panelesFORMATO.CORTE, FORMATO.CALC,FORMATO.DETALLE oFORMATO.FINAL. Cuando se genera elinforme, su valor aparece como parte delpie de corte, del texto de bloque dedetalle o del texto final.

alias Un nombre alternativo que se utiliza paraidentificar una tabla, una vista, una basede datos o un apodo. Un alias puedeutilizarse en sentencias SQL para hacerreferencia a una tabla, una vista o unabase de datos del mismo sistema osubsistema DB2 o en un sistema osubsistema DB2 remoto.

APAR (informe autorizado de análisis deprograma)

Solicitud de corrección de un defecto enun release soportado de un programaproporcionado por IBM.

APF (recurso de programa autorizado)En un entorno z/OS, recurso que permite

la identificación de programas que estánautorizados a utilizar funcionesrestringidas.

API (interfaz de programación de aplicaciones)Interfaz que permite a un programa deaplicación que está escrito en un lenguajede alto nivel utilizar funciones o datosespecíficos del sistema operativo o de otroprograma.

aplicaciónUno o más programas de sistema ocomponentes de software que utilizanservicios de QMF para proporcionarfuncionalidad de soporte directo deprocesos o un proceso de negocioespecífico.

APPC (Comunicación Avanzada Programa aPrograma)

Implementación del protocolo SNA LU6.2 que permite que sistemasinterconectados se comuniquen ycompartan el proceso de los programas.

plan de aplicaciónLa estructura de control que se producedurante el proceso de enlace. El nombrepor omisión para el plan de aplicación deQMF Versión 11 es QMF11.

interfaz de programación de aplicacionesVéase API.

peticionario de aplicacionesOrigen de una solicitud a un sistema degestión de bases de datos relacionales(RDBMS) habilitadas para DRDA. Sólo lasbases de datos DB2 para z/OS puedenfuncionar como peticionarios deaplicaciones porque es el único tipo debase de datos en el que QMF puedeiniciarse.

servidor de aplicacionesDestino de una petición procedente de unpeticionario de aplicaciones. El sistema degestión de bases de datos (DBMS) delsitio del servidor de aplicaciones daservicio a la solicitud. La conectividad conservidores remotos no está soportadacuando QMF para TSO se está ejecutandocomo un procedimiento almacenado deDB2 para z/OS.

© Copyright IBM Corp. 1982, 2013 261

Page 274: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

argumentoValor pasado a, o devuelto de, unafunción o procedimiento durante laejecución.

>identificador de autorización (ID deautorización)

Serie de caracteres que designa unconjunto de privilegios y que puedeutilizarse para verificar la autoridad. UnID de autorización puede representar unobjeto, un usuario individual, un grupoorganizativo, una función o un rol debase de datos. QMF autentica el ID deautorización de base de datos o, de formaopcional, el ID de inicio de sesión deQMF TSO, frente a la columna CREADORde la tabla Q.PERFILES durante lainicialización de QMF.

Informe autorizado de análisis de programaVéase APAR.

Recurso de programa autorizadoVéase APF.

tabla auxiliarTabla que almacena columnas fuera de latabla en la que se han definido. Véasetambién tabla base.

producto baseVersión de QMF en idioma inglés,establecida al instalar QMF. Cualquierotro entorno de idioma se establecedespués de la instalación instalando lacaracterística de idioma nacional (NLF)asociada a dicho idioma.

tabla baseTabla que se crea mediante la sentenciaSQL CREATE TABLE y que mantienedatos persistentes.

serie binariaSecuencia de bytes que no está asociada aun juego de caracteres codificado y quepor lo tanto, nunca se convierte. Porejemplo, el tipo de datos BLOB es unaserie binaria. Véase también CCSID.

enlazarConvertir la salida del precompiladorDBMS en una estructura de controlutilizable, como un plan de acceso, unplan de aplicación, o un paquete.

datos de bitDatos con un tipo de datos de CHAR oVARCHAR que no está asociado a un

juego de caracteres codificado y que porlo tanto, nunca se convierte.

agrupación de almacenamiento intermedioÁrea de memoria en la que se leen laspáginas de datos y en la que se modificany mantienen durante el proceso. Véasetambién espacio de direcciones.

función incorporadaFunción con tipos inflexibles de altorendimiento que es integral para la basede datos DB2. Se puede hacer referencia auna función incorporada en sentenciasSQL en cualquier lugar donde sea válidauna expresión.

CAF (recurso de conexión de llamada)Recurso de conexión de DB2 para z/OSpara programas de aplicación que seejecuta en TSO o proceso por lotes z/OS.El recurso de conexión de llamada (CAF)es una alternativa al procesador demandatos DSN y proporciona un mayorcontrol sobre el entorno de ejecución.

recurso de conexión de llamadaVéase CAF.

interfaz invocableInterfaz de programación que proporcionaacceso a objetos y servicios QMF.

supresión en cascadaProceso por el que el gestor de base dedatos DB2 fuerza limitacionesreferenciales suprimiendo todas las filasdescendientes o una fila padre suprimida.

catálogoColección de tablas y vistas que contienedescripciones de objetos, como tablas,vistas e índices. Véase también catálogo deobjetos QMF.

CCSID (identificador de juego de caracterescodificados)

Número de 16 bits que incluye unconjunto específico de identificadores deesquema de codificación, identificadoresde conjunto de caracteres, identificadoresde página de códigos y otra informaciónque identifica de forma exclusiva larepresentación de caracteres gráficoscodificados. Como QMF utiliza serviciosde visualización que proporciona GDDM,la página de códigos de la aplicación deGDDM debe coincidir con los CCSID enuso para la base de datos. Véase tambiénserie binaria.

262 Developing DB2 QMF applications

Page 275: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

serie de caracteresSecuencia de bytes que representa datosde bits, caracteres de un solo byte, o unamezcla de caracteres de un solo byte yvarios bytes.

restricción de comprobaciónRestricción definida por el usuario queespecifica los valores que puedencontener columnas específicas de unatabla base. Véase también restricción.

CICS (Customer Information Control System)Un programa bajo licencia de IBM queproporciona gestión y servicios de procesode transacciones en línea para lasaplicaciones empresariales.

cláusulaEn SQL, parte distintiva de una sentenciaen la estructura de lenguaje, tal como unacláusula SELECT o una cláusula WHERE.

CM (Modalidad de compatibilidad)Modalidad de instalación de QMF Versión8.1 y QMF Versión 9.1 que limitaba lalongitud de los nombres de propietario yobjeto del catálogo de objetos de QMF aocho y 18 caracteres respectivamente.Véase también NFM.

página de códigosAsignación concreta de puntos de códigoa caracteres gráficos. Dentro de unapágina de códigos dada, un punto decódigo sólo puede tener un significadoespecífico. Una página de códigostambién identifica cómo se manejanpuntos de código no definidos.

identificador de juego de caracteres codificadosVéase CCSID.

coexistenciaEstado durante el que existen dos releasesde QMF en el mismo subsistema DB2.QMF Versión 11 puede coexistir sólo conQMF Versión 9.1 Modalidad de nuevafunción o QMF Versión 8.1 Modalidad denueva función.

columnaEl componente vertical de una tabla debase de datos. Una columna tiene unnombre y un tipo de datos concreto (porejemplo, carácter, decimal o entero).

función de columnaVéase función agregada.

acomodación de columnaEl formato de valor de un informe dondelos valores ocupan varias líneas dentro deuna columna. La acomodación decolumna se utiliza frecuentemente cuandouna columna contiene valores cuyalongitud excede el ancho de columna,como los casos en que se requierevisualizar datos XML.

interfaz de mandatosInterfaz para emitir mandatos de QMF. Lainterfaz de mandatos permite emitirmandatos de QMF desde un diálogo ISPFque se ejecuta bajo QMF. Con estainterfaz, QMF se comunica con el diálogoa través de la agrupación de variablesISPF.

sinónimo de mandatoVerbo o parte de verbo/objeto de unmandato definido por el sitio. Después dedefinir y activar sinónimos de mandatosen el perfil de QMF, los usuarios puedenespecificar los sinónimos en la línea demandatos de QMF tal como lo hacen conlos mandatos de QMF normales.

tabla de sinónimos de mandatosTabla que almacena en cada columna unmandato definido por el sitio. Asigne unconjunto de sinónimos de mandato a unusuario almacenando el nombre de estatabla en el perfil del usuario.

operador de comparaciónEn SQL, símbolo utilizado en expresionesde comparación para especificar unarelación entre dos valores. Los operadoresde comparación son = (igual a), <> (noigual a), < (menor que), > (mayor que),<= (menor que o igual a) y >= (mayorque o igual a).

Modalidad de compatibilidadVéase CM.

confirmarFinalizar una unidad de trabajo liberandobloqueos de modo que los cambios debase de datos realizados por esa unidadde trabajo puedan ser percibidos por otrosprocesos. Esta operación hace que loscambios de los datos sean permanentes.

concatenaciónLa unión de dos caracteres o series paraformar una serie.

Glosario 263

Page 276: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

conexiónEn comunicación de datos, una asociaciónestablecida entre entidades para transmitirinformación. Véase también conexión SQL.La conectividad con servidores remotosno está soportada cuando QMF para TSOse está ejecutando como un procedimientoalmacenado de DB2 para z/OS.

constanteUn elemento de idioma que especifica unvalor que no cambia. Las constantes seclasifican como constantes de serie oconstantes numéricas.

restricciónNorma que limita los valores que puedeninsertarse, suprimirse o actualizarse enuna tabla.

sección de controlVéase CSECT.

tablas de controlConjunto de tablas que QMF utiliza paraalmacenar información sobre objetos QMFy gestionar operaciones de QMF. Véasetambién catálogo de objetos QMF.

referencia correlacionadaReferencia a una columna de una tabla ovista que está fuera de una subconsulta.

nombre de correlaciónIdentificador especificado y utilizadodentro de una sola sentencia SQL como elnombre expuesto para objetos, como unatabla, vista, referencia de función de tabla,expresión de tabla anidada o referencia detabla de cambios de datos. Los nombresde correlación son útiles en una sentenciaSQL para permitir dos referenciasdistintas para la misma tabla base asícomo permitir un nombre alternativo quese debe utilizar para representar unobjeto.

CSECT (sección de control)Parte de un programa que elprogramador ha especificado como unaunidad que se puede reubicar, cuyoselementos se han de cargar en ubicacionesde almacenamiento principales adjuntas.

ubicación actualServidor de aplicaciones al que estáconectada actualmente la sesión de QMF.Después de realizar la conexión, esteservidor procesa todas las sentencias SQL.Cuando se inicializa QMF, la ubicación

actual se puede indicar utilizando elparámetro de inicio DSQSDBNM. Laconectividad con servidores remotos noestá soportada cuando QMF para TSO seestá ejecutando como un procedimientoalmacenado de DB2 para z/OS.

objeto actualObjeto QMF que se mantiene enalmacenamiento temporal de modo quecon cada uso se pueda accederrápidamente sin precisar su recuperaciónde la base de datos. Existen siete áreas dealmacenamiento temporal: CONSULTA,FORMATO, PROC., PERFIL, INFORME,DATOS y DIAGRAMA. Los usuariospueden navegar por todas las áreasexcepto el área DATOS utilizando losmandatos MOSTRAR y VISUALIZAR.Véase también almacenamiento temporal.

cursor Estructura de control especificada queutiliza un programa de aplicación paraapuntar a y seleccionar una fila de datosde un conjunto.

Customer Information Control SystemVea CICS.

tipo de datosClasificación que identifica uno dediversos tipos de datos. En SQL, el tipode datos es un atributo de columnas,literales, variables de host, registrosespeciales, parámetros y los resultados defunciones y expresiones.

base de datosColección de elementos de datosinterrelacionados o independientesalmacenados juntos para dar servicio auna o más aplicaciones.

administrador de bases de datosPersona responsable del diseño,desarrollo, operación, seguridad,mantenimiento y uso de una base dedatos.

sistema de gestión de bases de datosVéase DBMS.

gestor de bases de datosPrograma que gestiona los datosproporcionando un control centralizado,independencia de los datos y estructurasfísicas complejas para lograr un accesoeficaz, integridad, recuperación, controlde simultaneidad, privacidad y seguridad.

264 Developing DB2 QMF applications

Page 277: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

servidor de bases de datosPrograma de software que utiliza ungestor de base de datos para proporcionarservicios de base de datos a otros sistemaso programas de software.

DBCS (juego de caracteres de doble byte)Juego de caracteres en el que cadacarácter se representa con dos bytes. Estosconjuntos de caracteres los utilizannormalmente los idiomas nacionales,como el japonés y el chino, que tienenmás símbolos que pueden representarsepor un solo byte. Véase también SBCS.

DBMS (sistema de gestión de bases de datos)Sistema de software que controla lacreación, organización y modificación deuna base de datos, así como el acceso alos datos que están almacenados en ella.

DCT (tabla de control de destino)Tabla que describe cada uno de losdestinos de datos transitorios utilizadosen CICS. Esta tabla contiene una entradapara cada extrapartición, intrapartición ydestino indirecto.

formato por omisiónEl formato QMF creado cuando en elmandato EJECUTAR CONSULTA no seespecifica un formato guardado.

valor por omisiónValor, atributo u opción predeterminadosque se presuponen cuando no seespecifica ningún otro explícitamente. Sepuede definir un valor predeterminadopara datos de columna en tablas DB2especificando la palabra clave DEFAULTen una sentencia SQL que cambia datos(como INSERT, UPDATE y MERGE).

fila dependienteFila que contiene una clave foránea quecoincide con el valor de una clave padreen la fila padre. El valor de la claveforánea representa una referencia desde lafila dependiente a la fila padre.

tabla dependienteUna tabla que tiene una dependencia deun objeto. Por ejemplo, una tabla con unaclave foránea es dependiente de la tablaque contiene la clave primariacorrespondiente.

tabla de control de destinoVéase DCT.

texto de bloque de detalleEl texto del cuerpo de un informe queestá asociado a una fila de datos concreta.

texto de encabezamiento de detalleTexto del encabezamiento de un informe.

variación de detalleDefinición de formato de datosespecificada en un panelFORMATO.DETALLE que se puedeutilizar condicionalmente para formatearun informe o parte de un informe.

tipo diferenciadoUn tipo de datos definido por el usuarioque comparte una representación comúncon tipos de datos incorporados.

datos distribuidosDatos almacenados en más de un sistemay disponibles para programas deaplicación y usuarios remotos.

base de datos distribuidaBase de datos que aparece ante losusuarios como un conjunto lógicoaccesible localmente pero que estáformada por bases de datos de múltiplesubicaciones que están conectadas por unared de comunicaciones de datos.

Distributed Relational Database ArchitectureVéase DRDA.

unidad de trabajo distribuidaUna forma de proceso de base de datosrelacional distribuida que permite a unusuario o programa de aplicación leer oactualizar datos en varias ubicacionesdentro de una unidad de trabajo. Dentrode una unidad de trabajo, una aplicación,como QMF, que se ejecuta en un sistemapuede dirigir solicitudes SQL a variossistemas de gestión de base de datosremotos utilizando el SQL que dichossistemas admiten. La solicitud se realiza através de un mandato de QMF queincluye un nombre de vista o tabla de trespartes. Los mandatos de QMF connombres de tres partes no puedendirigirse a bases de datos DB2 para VM oVSE o utilizarse cuando QMF para TSOse ha iniciado como un procedimientoalmacenado de DB2 para z/OS. Losnombres de tres partes en mandatos deQMF tampoco pueden hacer referencia auna tabla que contiene tipos de datos deobjetos grandes (LOB).

Glosario 265

Page 278: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

juego de caracteres de doble byteVéase DBCS.

número de doble precisión de coma flotanteRepresentación de un número real deaproximadamente 64 bits.

DRDA (Distributed Relational DatabaseArchitecture)

La arquitectura que define formatos yprotocolos para proporcionar accesotransparente a datos remotos. DRDAdefine dos tipos de funciones: la funciónde peticionario de aplicaciones y lafunción de servidor de aplicaciones.

entornoColección con nombre de recursos lógicosy físicos utilizados para dar soporte a larealización de una función.

rutina de salidaPrograma que recibe control de otroprograma para realizar funcionesespecíficas.

Extensible Markup LanguageVéase XML.

sintaxis ampliadaSintaxis que se utiliza para los mandatosFIJAR GLOBAL y OBTENER GLOBAL deQMF y determinadas llamadas a funciónen una aplicación de interfaz invocable.La sintaxis ampliada define parámetrosque utilizan las aplicaciones de interfazinvocable deQMF escritas en Assembler,C, COBOL, Fortran o PL/I.

repliegueProceso de volver a un release anterior deun programa de software después deintentar o de completar la migración a unrelease actual.

captaciónProceso de recuperar filas de la base dedatos o un archivo para crear un objetoDATOS de QMF. QMF da soporte a lacaptación de varias filas mediante elparámetro DSQSMRFI.

clave foráneaEn una base de datos relacional, clave deuna tabla que hace referencia a la claveprimaria de otra tabla.

GDDM (Gestor de Representación Gráfica deDatos) Software de gráficas que define y

visualiza texto y gráficas para la salida deun dispositivo de visualización o unaimpresora.

variable globalEntidad con nombre cuyo valor persistepor omisión durante una sesión de QMF.QMF utiliza variables globales paragestionar la actividad de base de datos yde la sesión. Algunas variables globalespueden establecerse con el mandatoFIJAR GLOBAL, mientras que otrasregistran información sobre el estado dela sesión QMF actual y por lo tanto nopueden establecerse.

serie gráficaSecuencia de caracteres de juegos decaracteres de doble byte (DBCS).

Gestor de Representación Gráfica de DatosVéase GDDM.

host El sistema que ejerce el control o el demás alto nivel en una configuración decomunicaciones de datos.

HTML (lenguaje de marcado de hipertexto)Un lenguaje de marcación que se ajusta alestándar SGML (Standard GeneralizedMarkup Language) y se ha diseñadoprimordialmente para dar soporte a lavisualización en línea de información detexto y gráficas que incluye enlaces dehipertexto.

lenguaje de marcado de hipertextoVéase HTML.

ICU (Interactive Chart Utility)Un componente gestionado por menúsdel producto Graphical Data DisplayManager (GDDM) de IBM que permite alos usuarios no programadores visualizar,imprimir o trazar gráficas y diagramas.

columna de identidadColumna que proporciona una forma paraque el gestor de base de datos de DB2genere automáticamente un valornumérico para cada fila que se inserta enuna tabla. Las columnas de identidad sedefinen con la cláusula AS IDENTITY.Una tabla no puede tener más de unacolumna de identidad.

índice Conjunto de punteros ordenadoslógicamente por los valores de una clave.Los índices proporcionan acceso rápido a

266 Developing DB2 QMF applications

||||||||

||||||||||

Page 279: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

los datos y pueden forzar la exclusividadde los valores clave para las filas de latabla.

unión internaEl resultado de una operación de uniónque incluye sólo las filas que coinciden delas dos tablas que se están uniendo. Véasetambién unión externa.

procedimiento de verificación de la instalaciónVéase IVP.

Integrated Exchange FormatVéase IXF.

Interactive Chart UtilityVéase ICU.

Interactive System Productivity FacilityVéase ISPF.

ISPF (Interactive System Productivity Facility)Un programa con licencia de IBM quesirve como editor de pantalla completa ygestor de diálogos. Se utiliza para escribirprogramas de aplicación, proporciona unmedio de generar paneles de pantallaestándar y diálogos interactivos entre elprogramador de aplicaciones y el usuariode terminal.

IVP (procedimiento de verificación de lainstalación)

Procedimiento o programa cuyo propósitoes verificar que un producto se hayainstalado correctamente.

IXF (Integrated Exchange Format)Protocolo para la transferencia de datostabulares entre varios productos desoftware.

JCL (lenguaje de control de trabajos)Lenguaje de mandatos que identifica untrabajo de un sistema operativo y describelos requisitos del trabajo.

lenguaje de control de trabajosVéase JCL.

unión Operación relacional que permiterecuperar datos de dos o más tablasbasándose en columnas que coinciden.

clave Columna o colección ordenada decolumnas que está identificada en ladescripción de una tabla, un índice olímite referencial. La misma columnapuede formar parte de más de una clave.

palabra claveUna de las palabras predefinidas de unlenguaje de programación, un lenguaje deartificial, una aplicación o un mandato.

parámetro de palabra claveUn parámetro que consta de una palabraclave seguida de uno o más valores.Véase también parámetro posicional.

objeto grandeVéase LOB.

edición de enlacesCrear un programa de sistema cargablemediante un editor de enlaces.

editor de enlacesPrograma de sistema para crear módulosde carga a partir de uno o más módulosde objetos o módulos de cargaresolviendo referencias cruzadas entre losmódulos y, si es necesario, ajustandodirecciones.

literal Serie de caracteres cuyo valor definen lospropios caracteres. Por ejemplo, laconstante numérica 7 tiene el valor 7, y laconstante de tipo carácter 'CHARACTERS'tiene el valor CHARACTERS.

procedimiento linealConjunto secuenciado de sinónimos demandatos o mandatos de QMF quepueden utilizarse para realizar variasoperaciones a la vez. Véase tambiénprocedimiento con lógica.

sintaxis linealSintaxis de mandato QMF que se entra enuna sentencia de un programa oprocedimiento o que puede entrarse en lalínea de mandatos QMF.

módulo de cargaPrograma con formato adecuado para sucarga en el almacenamiento principal parasu ejecución.

LOB (objeto grande)Secuencia de bytes con un tamaño queoscila desde los 0 bytes a los 2 gigabytes(menos de 1 byte). Existen tres tipos dedatos LOB: objeto grande binario (BLOB),objeto grande de caracteres (CLOB, quepuede incluir sólo caracteres de un solobyte o una mezcla de caracteres de unsolo byte y de doble byte) y un objeto

Glosario 267

Page 280: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

grande de caracteres de doble byte. QMFda soporte a un tamaño de columna deLOB de hasta 32 KB.

local Relativo a las bases de datos, los objetos olas aplicaciones que se han instalado oalmacenado en el sistema en el que QMFse está ejecutando actualmente.

ubicaciónServidor de bases de datos relacionalesespecífico en un sistema de bases de datosrelacionales distribuido. Cada ubicacióntiene un nombre de ubicación único.

nombre de ubicaciónEl nombre exclusivo de un servidor debases de datos. Una aplicación utiliza unnombre de ubicación para acceder a unservidor de base de datos de DB2.

bloquearMedio de serializar una secuencia desucesos o de serializar el acceso a datos.

registroColección de registros que describe deforma secuencial los sucesos que se hanproducido en un sistema.

LUW Abreviatura para Linux, UNIX yWindows.

Característica de Idioma Nacional (NationalLanguage Feature)

VéaseNLF.

Modalidad de nueva funciónVéase NFM.

NFM (Modalidad de nueva función)Modalidad de instalación de QMF Versión8.1 y QMF Versión 9.1 que permitía quelos nombres de propietario y objeto delcatálogo de objetos de QMF tuvieran lalongitud máxima permitida por la base dedatos. QMF Versión 11 también permiteque los nombres de propietario y objetotengan la longitud permitida por la basede datos. Véase también CM.

NLF (Característica de idioma nacional)Cualquiera de varias característicasopcionales disponibles con QMF. Las NLFpermiten a los usuarios interactuar conQMF en idiomas nativos específicos.

objeto Espacio de almacenamiento nombradoque consta de un conjunto decaracterísticas que describen el espacio y,en algunos casos, datos. Un objeto es

cualquier cosa que ocupa espacio enalmacenamiento, puede localizarse en unabiblioteca o directorio, puede protegerse,y en el que se pueden llevar a cabooperaciones definidas. Véase tambiénobjeto QMF.

unión externaEl resultado de una operación de uniónque incluye las filas que coinciden de lasdos tablas que se están uniendo y queconserva algunas o todas las filas que nocoinciden de las tablas que se estánuniendo. Véase también unión interna.

paqueteObjeto de base de datos de estructura decontrol producida durante la preparaciónde programa que puede contenerformatos ejecutables de sentencias SQLestáticas o expresiones XQuery y espaciosreservados para formatos ejecutables desentencias SQL dinámicas.

panel Visualización formateada de informaciónen una ventana que también puedeincluir campos de entrada.

parámetroUn valor o una referencia pasados a unafunción, un mandato o un programa quesirve como entrada o acciones de control.El valor lo proporciona un usuario u otroprograma o proceso.

particiónFragmento de un conjunto de páginas.Cada partición corresponde a un soloconjunto de datos ampliableindependiente. Las particiones puedenampliarse hasta un máximo de 1, 2 o 4gigabytes, en función del número departiciones del conjunto de páginasparticionado. Todas las particiones de unapágina dada tienen el mismo tamaño.

plan Véase plan de aplicación.

parámetro posicionalParámetro que debe aparecer en unaubicación especificada, relativa a otrosparámetros. Véase también parámetro depalabra clave.

precisiónAtributo de un número que describe elnúmero total de dígitos significativos.

268 Developing DB2 QMF applications

Page 281: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

predicadoElemento de una condición de búsquedaque expresa o implica una operación decomparación.

ID de autorización primarioIdentificador de autorización utilizadopara identificar un proceso de aplicaciónpara DB2 para z/OS.

clave primariaEn una base de datos relacional, clave queidentifica exclusivamente una fila de unatabla de base de datos.

privilegioEn SQL, una función que da a un usuarioel proceso de una sentencia GRANT.

procedimientoConjunto secuenciado de sentencias omandatos utilizados para realizar una omás tareas. Véase también procedimientolineal y procedimiento con lógica.

procedimiento con lógicaConjunto de sentencias que lleva a cabouna o más tareas. Un procedimiento conlógica empieza con un comentario REXXy permite lógica condicional (que utilizaREXX), cálculos, crear series y mandatosTSO o CICS. Véase también procedimientolineal.

perfil Objeto que contiene información sobre lascaracterísticas de la sesión de usuario.

arreglo temporal de programaVéase PTF.

consulta solicitudUna consulta gestionada por menúscontrolada por parámetrosproporcionados por el usuario.

PTF (arreglo temporal de programa)Para los productos System i, System p ySystem z, arreglo probado por IBM queestá disponible para todos los clientes.

QBE (Consulta-por-Ejemplo)Componente de QMF que permite a losusuarios crear consultas de forma gráfica.

autorización de administrador de QMFAutoridad que permite a un usuarioinsertar o suprimir filas en la tabla decontrol Q.PERFILES. Los usuarios conesta autoridad pueden realizar lossiguientes mandatos en consultas,formatos y procedimientos QMF que son

propiedad de otros usuarios sin obligar alos propietarios a compartir estos objetoscon todos los usuarios: SALVAR,BORRAR, IMPORTAR, EXPORTAR yVISUALIZAR. QMF comprueba si el IDde cada usuario tiene autorización deadministración durante la inicialización;se puede inhabilitar esta comprobaciónestableciendo la variableDSQEC_DISABLEADM en la rutina desalida DSQUOPTS o en otro programaque elija.

QMF administradorUsuario que tiene autorización deadministrador de QMF.

Consulta-por-EjemploVéase QBE.

Objeto QMFObjeto utilizado por los usuarios de QMFpara consultar, formatear y presentardatos, o de otra forma gestionar lainteracción entre QMF y la base de datos.Los objetos QMF incluyen consultas ydatos de resultados de consultas,formatos, procedimientos, informes,diagramas y el perfil de QMF. Cadaobjeto QMF tiene un área dealmacenamiento temporal especificadaque se utiliza para visualizar el objeto.Todos los objetos, excepto informes ydiagramas, pueden guardarse en la basede datos; los informes y diagramas secrean de forma dinámica cuando elusuario lo solicita aplicando lasespecificaciones de formato de un formatoQMF concreto para generar datos que sehan devuelto de la base de datos. Véasetambién almacenamiento temporal.

Catálogo de objetos de QMFConjunto de tablas de control quealmacena información sobre consultas,procedimientos y formatos de QMF. Estastablas de control incluyenQ.OBJECT_DIRECTORY,Q.OBJECT_DATA yQ.OBJECT_REMARKS.

calificadorCuando se hace referencia a un objetoQMF, parte del nombre que identifica alpropietario de la ubicación de un objeto.Cuando se hace referencia a un conjuntode datos TSO, cualquier parte del nombreque esté separada del resto del nombre

Glosario 269

Page 282: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

mediante puntos. Por ejemplo, ‘TCK’,‘XYZ’ y ‘CONSULTA’ son calificadores enel nombre del conjunto de datos‘TCK.XYZ.CONSULTA’.

consultaSolicitud de información de una base dedatos de acuerdo con condicionesespecíficas: por ejemplo, una solicitud deuna lista de todos los clientes de unatabla de clientes cuyos balances sonsuperiores a 1000 dólares. En QMF, unaconsulta también hace referencia asentencias SQL enviadas desde el panelConsulta solicitud, QBE o Consulta SQL,incluso si estas sentencias no sonsolicitudes de información (sentenciasSELECT).

RCT (tabla de control de recursos)Tabla de control DB2 que define larelación entre transacciones CICS yrecursos DB2.

RDBMS (sistema de gestión de bases de datosrelacionales)

Colección de hardware y software queorganiza y proporciona acceso a una basede datos relacional.

RDO (definición de recurso en línea)En CICS, recurso que permite al usuariodefinir determinados recursos CICS deforma interactiva mientras se ejecutaCICS. De forma específica, RDO permiteal usuario definir terminales, programas ytransacciones de forma interactiva.

registroRepresentación de almacenamiento deuna fila u otros datos.

longitud de registroLa longitud del almacenamiento querepresenta una fila u otros datos.

reentranteCódigo ejecutable que puede residir enalmacenamiento como una copiacompartida para todas las hebras de basede datos. El código reentrante no secambia a sí mismo y proporciona áreas dealmacenamiento separadas para cadahebra.

restricción referencialRequisito de que los valores no nulos deuna clave primaria designada sólo sonválidos si también aparecen como valoresde la clave primaria de la tabla padre. La

restricción referencial siempre se definedesde la perspectiva del archivodependiente.

base de datos relacionalBase de datos que puede percibirse comoun conjunto de tablas y manipularse deacuerdo con el modelo de datosrelacional. Cada base de datos incluye unconjunto de tablas de catálogo de sistemaque describen la estructura lógica y físicade los datos, un archivo de configuraciónque contiene los valores de parámetrosasignados para la base de datos y unregistro de recuperación con lastransacciones en curso y las transaccionesque se pueden archivar.

sistema de gestión de bases de datosrelacionales

Véase RDBMS.

remotoRelativo a las bases de datos, los objetos olas aplicaciones que se han instalado oalmacenado en un sistema distinto alsistema en el que QMF se está ejecutandoactualmente. Puede acceder a objetos(incluidos consultas, formatos yprocedimientos QMF) de un servidorremoto utilizando el mandatoCONECTAR de QMF. También puedeutilizar un mandato de QMF con unnombre de vista o tabla de tres partes sidesea acceder sólo a tablas o vistas deuna ubicación remota. El acceso remotono está permitido cuando QMF para TSOse está ejecutando como un procedimientoalmacenado de DB2 para z/OS.

unidad de trabajo remotaForma de proceso de base de datosrelacional distribuida en la que unprograma de aplicación, como QMF,puede acceder a datos de una base dedatos remota dentro de una unidad detrabajo. La conexión se establece medianteel mandato CONECTAR de QMF. Elmandato CONECTAR no puede utilizarsecuando QMF para TSO se está ejecutandocomo un procedimiento almacenado deDB2 para z/OS.

peticionarioVéase peticionario de aplicaciones

recursoObjeto de un bloqueo o una reclamación,que podría ser un espacio de tabla, un

270 Developing DB2 QMF applications

Page 283: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

espacio de índice, una partición de datos,una partición de índice o una particiónlógica.

tabla de control de recursosVéase RCT.

definición de recurso en líneaVéase RDO.

Restructured Extended ExecutorVéase REXX.

REXX (Restructured Extended Executor)Lenguaje de programación de uso generalde alto nivel, especialmente adecuadopara programas o procedimientos EXECpara el sistema.

retrotraerRestaurar datos que una sentencia SQL hacambiado al estado de su último punto decompromiso. Si se produce una anomalíaen una consulta que contiene variassentencias y ninguna sentencia COMMIT,se retrotraen todas las sentencias, exceptolas que afectan a la sesión de QMF (comoSET). Si se produce una anomalía en unaconsulta que contiene una o mássentencias COMMIT, se retrotraen todaslas actualizaciones después de la últimasentencia COMMIT satisfactoria. Encualquiera de los dos casos, la consultafinaliza después de la anomalía.

rutina Programa o secuencia de instruccionesinvocados por un programa.Normalmente, una rutina tiene un usogeneral y se utiliza a menudo.

fila El componente horizontal de una tabla,que consta de una secuencia de valores,uno por cada columna de la tabla.

variable de tiempo de ejecuciónVariable de un procedimiento o unaconsulta cuyo valor especifica el usuariocuando se ejecuta el procedimiento o laconsulta. El valor de una variable detiempo de ejecución sólo está disponibleen el procedimiento o la consulta actual.Véase también variable global.

SBCS (juego de caracteres de un solo byte)Juego de caracteres codificado en el quecada carácter se representa mediante uncódigo de 1 byte. Un punto de código de1 byte permite la representación de hasta256 caracteres. Véase también juego decaracteres de doble byte.

función escalarFunción SQL que, de forma opcional,acepta argumentos y que devuelve unúnico valor escalar cada vez que seinvoca. Se puede hacer referencia a unafunción escalar en una sentencia SQLsiempre que una expresión sea válida.

área de anotaciónÁrea de trabajo utilizada en el procesoconversacional para retener informaciónde un programa de aplicación en todaslas ejecuciones del programa.

condición de búsquedaCriterio para seleccionar filas de unatabla. Una condición de búsqueda constade uno o más predicados.

ID de autorización secundarioEn DB2 para z/OS, identificador deautorización asociado a un ID deautorización primario mediante unarutina de salida de autorización. Véasetambién ID de autorización primario.

espacio de tabla segmentadoEspacio de tabla que se divide en gruposde páginas de igual tamaño denominadossegmentos. Los segmentos se asignan atablas de modo que las filas de distintastablas nunca se almacenan en el mismosegmento. Véase también espacio de tabla.

servidorVéase servidor de aplicaciones.

sesión Todas las interacciones entre el usuario yQMF desde el momento en el que elusuario invoca QMF hasta que se emite elmandato SALIR.

carácter de desplazamiento a teclado estándarCarácter de control (X'0F') que se utilizaen sistemas EBCDIC para indicar que losbytes subsiguientes representan caracteresSBCS. Véase también carácter dedesplazamiento desde teclado estándar

carácter de desplazamiento desde tecladoestándar

Carácter de control (X'0E') que se utilizaen sistemas EBCDIC para indicar que losbytes subsiguientes, hasta el siguientecarácter de control de desplazamiento ateclado estándar, representan caracteresDBCS. Véase también carácter dedesplazamiento a teclado estándar.

Glosario 271

Page 284: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

juego de caracteres de un solo byteVéase SBCS.

número de coma flotante de precisión simpleRepresentación de un número real deaproximadamente 32 bits.

SQL (Lenguaje de Consulta Estructurada)Lenguaje estandarizado para definir ymanipular datos en una base de datosrelacional.

ID de autorización SQLVéase SQLID.

conexión SQLAsociación entre un proceso de aplicacióny un servidor de aplicaciones local oremoto o un servidor de bases de datos.Véase tambiénunidad de trabajo remota,unidad de trabajo distribuida.

función SQLFunción que se implementacompletamente utilizando un subconjuntode sentencias SQL y parámetros SQL PL.

ID de SQL (ID de autorización de SQL)En DB2 para z/OS, el ID que se utilizapara comprobar la autorización desentencias SQL dinámicas en algunassituaciones.

código de retorno SQLEl código SQLSTATE o SQLCODE queindica si la sentencia SQL ejecutadaanteriormente se ha completadosatisfactoriamente, con uno o más avisos,o con un error.

SQLCA (Área de Comunicaciones del Lenguajede Consulta Estructurada)

Conjunto de variables que proporcionan aun programa de aplicación informaciónsobre la ejecución de sus sentencias SQL osolicitudes desde el gestor de bases dedatos. Cuando un error está asociado conun código SQL, la ayuda del mensajeQMF (disponible pulsando la teclaAyuda) muestra el contenido de SQLCA.

procedimiento almacenadoRutina que puede invocarse utilizando lasentencia CALL de SQL para realizaroperaciones que pueden incluir tantosentencias de lenguaje de host comosentencias SQL.

interfaz de procedimiento almacenadoInterfaz para QMF para TSO que permiteiniciar QMF como un procedimiento

almacenado de DB2 para z/OS, pasar elnombre de un procedimiento o consultaQMF que realiza el trabajo que senecesita, y recibir hasta 21 conjuntos deresultados, incluido un conjunto deresultados para la salida de rastreo. QMFpara TSO puede iniciarse de esta formadesde cualquier producto que puedaejecutar un procedimiento almacenado deDB2 para z/OS.

Structured Query LanguageVéase SQL.

Área de Comunicaciones del Lenguaje deConsulta Estructurada (Structured QueryLanguage Communication Area)

Véase SQLCA.

subconsultaConsulta SQL completa que aparece enuna cláusula WHERE o HAVING de otraconsulta.

variable de sustitución(1) Variable en un procedimiento o unaconsulta cuyo valor se especifica medianteuna variable global o mediante unavariable de tiempo de ejecución. (2)Variable en un formato QMF cuyo valorse especifica mediante una variableglobal.

subserieParte de una serie de caracteres.

subsistemaEn DB2 para z/OS, una instancia distintade un sistema de gestión de bases dedatos relacionales (RDBMS).

tabla En una base de datos relacional, un objetode base de datos que consta de unnúmero específico de columnas y que seutiliza para almacenar un conjunto defilas sin ordenar. Véase también tabla base.

espacio de tablaUnidad lógica de almacenamiento en unabase de datos. En DB2 para z/OS, unespacio de tabla es un conjunto depáginas y puede contener una o mástablas. En DB2 para Linux, UNIX yWindows, un espacio de tabla es unacolección de contenedores, y los datos, elíndice, el campo largo y las partes deLOB de una tabla pueden almacenarse enel mismo espacio de tabla o en espaciosde tabla distintos.

272 Developing DB2 QMF applications

Page 285: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

almacenamiento temporalÁrea utilizada para almacenar un objetoQMF temporalmente mientras el usuarioestá trabajando en el mismo de modoque, con cada uso, pueda accederserápidamente sin más recuperación de labase de datos. Hay siete áreas dealmacenamiento temporal: CONSULTA,DATOS, FORMATO, PROC., INFORME,DIAGRAMA o PERFIL. A excepción delos datos de resultado de consulta (elobjeto de datos DATOS), los objetos QMFde estas áreas pueden visualizarseutilizando el mandato MOSTRAR seguidodel nombre del área de almacenamiento.Aunque el contenido del área DATOS nopuede visualizarse directamente, losusuarios pueden emitir los mandatosMOSTRAR INFORME o SHOW CHARTpara ver los datos del resultado de laconsulta formateados con lasespecificaciones del formato actualmenteen el área FORMATO. Véase tambiénobjeto QMF, objeto actual.

cola de almacenamiento temporalEn CICS, cola de elementos de datos quepuede leerse y volver a leerse, encualquier secuencia. La cola la crea unatarea y persiste hasta que la misma tareau otra la suprime. Véase también cola dedatos transitoria.

hebra Estructura DB2 que describe la conexiónde una aplicación, rastrea su proceso,procesa funciones de recursos y delimitasu accesibilidad a recursos y serviciosDB2. La mayoría de funciones de DB2 seejecutan bajo una estructura de hebra.

nombre de tres partesEl nombre completo de una tabla, vista oalias que consta de un nombre deubicación, un identificador deautorización y un nombre de objeto,separado por puntos. Los mandatos deQMF que incluyen nombres de tres partesse pueden iniciar sólo desde bases dedatos DB2 para z/OS y pueden dirigirse atodas las bases de datos excepto DB2 paraVM o VSE. Cuando QMF para TSO se hainiciado como un procedimientoalmacenado de DB2 para z/OS, no se dasoporte a mandatos de QMF con nombresde tres partes.

Time Sharing OptionVea TSO.

rastreoRegistro del proceso de una transacción oun programa del sistema. La informaciónrecopilada de un rastreo puede utilizarsepara evaluar problemas y rendimiento.

transacciónUnidad de proceso que consta de uno omás programas de aplicación, que afecta auno o más objetos, y que se iniciamediante una única solicitud.

cola de datos transitoriosÁrea de almacenamiento de CICS dondese almacenan los objetos para un procesointerno o externo posterior. Véase tambiéncola de almacenamiento temporal.

desencadenanteObjeto de base de datos asociado con unaúnica vista o tabla de base de datos y quedefine una regla. La regla consta de unconjunto de sentencias SQL que se ejecutacuando se lleva a cabo una operación deinserción, actualización o supresión debase de datos en la vista o tabla baseasociada.

TSO (Time Sharing Option)Elemento base del sistema operativo z/OSque permite a los usuarios trabajar deforma interactiva con el sistema.

compromiso de dos fasesProceso de dos pasos mediante el que secomprometen recursos recuperables en unsubsistema externo. Durante el primerpaso, se sondean los subsistemas delgestor de base de datos para asegurarsede que están listos para comprometerse.Si todos los subsistemas respondenpositivamente, el gestor de base de datosles indica que se comprometan.

UDF (función definida por el usuario)Función que se ha definido para elsistema de base de datos DB2 utilizandola sentencia CREATE FUNCTION y a laque se puede hacer referenciaposteriormente en sentencias SQL. UnaUDF puede ser una función externa o unafunción SQL.

UnicodeEstándar de codificación de caracteres queda soporte al intercambio, proceso yvisualización de texto que se escribe enidiomas comunes de todo el mundo, másalgunos textos clásicos e históricos. El

Glosario 273

Page 286: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

estándar Unicode tiene un juego decaracteres de 16 bits definido por ISO10646.

unidad de recuperación (UR)Secuencia de operaciones dentro de unaunidad de trabajo entre puntos decoherencia.

unidad de trabajo (UOW)Secuencia recuperable de operacionesdentro de un proceso de aplicación. Encualquier momento, un proceso deaplicación es una sola unidad de trabajo,pero la vida de un proceso de aplicaciónpuede incluir muchas unidades de trabajocomo resultado de operaciones decompromiso y retrotracción. En unaoperación de actualización de variossitios, una sola unidad de trabajo puedeincluir varias unidades de recuperación.En las consultas SQL de QMF queincluyen varias sentencias y ningunasentencia COMMIT, todas las sentenciascontienen una única unidad de trabajo, deforma que en caso de una anomalía seretrotraen toda las sentencias, exceptoaquellas que afectan a la sesión (porejemplo, SET). En las consultas SQL deQMF que incluyen varias sentencias y unao más sentencias COMMIT, una unidadde trabajo consta de una sentenciaCOMMIT y todas las sentencias anterioreshasta el inicio de la consulta o la últimasentencia COMMIT. Si se produce unaanomalía, se retrotraen todas lasactualizaciones después de la últimasentencia COMMIT satisfactoria.

función definida por el usuarioVéase UDF.

vista Tabla lógica basada en datos almacenadosen un conjunto de tablas subyacente. Losdatos devueltos por una vista losdetermina una sentencia SELECT que seejecuta en las tablas subyacentes.

XML (Extensible Markup Language)Metalenguaje estándar para definirlenguajes de códigos que se basan enStandard Generalized Markup Language(SGML).

z/OS Sistema operativo de sistema principal deIBM que utiliza almacenamiento real de64 bits.

274 Developing DB2 QMF applications

||||

||||||||||||||||||||||||||||

Page 287: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

Índice

Aacceso a datos remoto

ID de usuario para CONNECT 215alias

vista que recupera los alias para LIST 230almacenamiento

ampliados, datos de vertido (TSO) 56consideraciones sobre la exportación 144

datos XML 102datos de vertido

virtual ampliado 230especificación al exportar 230tamaño máximo de archivo exportado 142

almacenamiento ampliado, utilizar para datos de vertidodefinir cantidad 230parámetros de programa necesarios 56

almacenamiento temporal 22CICS

global relacionada con el archivo de vertido 221global relacionada con la impresión 221

cola 144confirmación de sobrescrituras 230modificación 22restricciones 3variables globales para el rastreo 221

almacenamiento virtualVéase almacenamiento

analizar servicios y exportar XML 99AÑADIR, mandato

confirmación del Editor de tabla 223aplicaciones

bilingües 41control 1depuración 147desarrollo 1entorno CICS 4inicio 2mandatos 1

INTERACT 48procesamiento 17visión general 45

métodos de implementación 3procedimientos 7procedimientos con lógica 3registros de datos 109requisitos de ISPF 33sinónimo de mandato 2tipos 1

aplicaciones de depuraciónISPF, utilización 37prueba de diálogo de PDF 37

aplicaciones traducibles 44archivo de esquema DSQ1SCEM 101archivo de esquema qmf_data.xsd 101archivo de hoja de estilo DSQ1STSH 101archivo de vertido

uso de almacenamiento ampliado en TSO 230variables globales que soportan 221

área de comunicacionesCOBOL 175, 179definición 18

área de comunicaciones (continuación)FORTRAN 190PL/I 199

áreas de control en objetos exportados 105registros de archivos de formulario 105registros de archivos de informe 105registros T 107

argumentos 12asignación de espacio primario al exportar 230asignación de espacio secundario al exportar 230Assembler

área de comunicaciones 160CICS 151

programa de ejemplo 154z/OS 162

High Level Assembler (HLASM) 151interfaz de lenguaje 151llamadas a función 152macros 211programa de ejemplo 154programas de ejemplo de TSO 157, 163

autoridad de administrador, variables globales para 215, 230autoridad de administrador de QMF

Véase autoridad de administrador, variables globales paraavisos

legales 257ayuda en línea

ayuda de mensaje QMFmostrar códigos SQL positivos 225

Bbase de datos

códigos SQLVéase códigos SQL

ID de subsistema, variable global 215lectura sin confirmar vs. estabilidad de cursor 230

BIGINT, tipo de datosancho de columna en exportación 78exportación

formato de datos de columna, IXF 88exportar 78

BINARY, tipo de datosexportación

formato de datos de columna, IXF 88bloqueos sobre datos

impedir escalamiento 230opciones de resolución de acceso simultáneo 230

bloques de directorios, especificación al exportar 230

Ccabeceras, columna

Véase encabezamientoCANCELAR, mandato

confirmación del Editor de tabla 223cantidad de desplazamiento, definir 225captación de múltiples filas 56

anomalías de nombres de tres partes 56captar, varias filas 56

© Copyright IBM Corp. 1982, 2013 275

Page 288: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

caracteres de control de carro, suprimir 230Característica de idioma nacional (NLF)

Véase soporte multiculturalCCSID utilizado para exportaciones XML 99COBOL

área de comunicaciones 175CICS 181delimitadores 181DSQCOMM 179interfaz invocable 175ISPF 183llamadas a función 176macros 211programa de ejemplo 178requisitos de ejecución 181TSO 182

códigos, SQLVéase códigos SQL

códigos de edición, palabras clave vistas enexportaciones 113

códigos de edición D, DC, DZ, DZCsímbolo de moneda, cambiar 225

códigos de edición definidos por el usuariopalabra clave vista en formularios exportados 113

códigos de retornointerfaz de mandatos 27interfaz invocable 20mensaje 13no cero 13

códigos hexadecimales para tipos de datos exportados 113códigos SQL

mostrar desde el último mandato 245positivo, habilitar soporte de mensaje 225

códigos SQL positivos, soporte de mensaje 225cola

variables globales para datos de vertido 221variables globales para imprimir en 221

columna 84, 86anchos en exportación 78encabezamiento

etiquetas vs. nombres 225EXPLICAR mandato

Véase mandato DESCRIBEformato de datos 86

XML 100indicador predeterminado en el Editor de tabla 223longitudes de nombre en EXPORT 75, 225registros C 84

coma flotante decimal, tipo de datosVéase tipo de datos DECFLOAT

comentariosformatos exportados 123registros de datos de aplicación 109, 123

comentarios, enviar a IBM xCONECTAR, mandato

contraseñas que combinan mayúsculas y minúsculas 220procedimientos iniciales 7variable global para CONNECT ID 215

conectividad con servidores remotosrestricciones de interfaz de procedimiento almacenado 45

conexiones de base de datos remotas 9conjunto de datos, definición para exportaciones 230conjunto de resultados

especificar cual utilizar para el informe 230registros en XML exportado 99

conjuntos de datos PDS y PDSEdefinición de almacenamiento de exportación 230

conjuntos de datos PDS y PDSE (continuación)definición del tipo en QMF 230

conjuntos de datos PS, definición para exportación 230conmutador de interacción (DSQAO_INTERACT) 50consulta

conversiónVéase mandato CONVERT QUERY

coste estimado, inhabilitar 225ejecución

Véase mandato RUN QUERYimpedir sobrescrituras de panel QUERY 230informe desde ejecución

supresión 225nivel de aislamiento 230sentencias CALL

Véase también sentencia CALLespecificar conjunto de resultados para informe 230

SQLVéase consultas SQL

subtipos como están almacenados en globales 215variable global de modelo 215

consulta asistidaespecificaciones de archivo de importación/

exportación 142exportación 103, 131

máximo de tamaño de archivo 142formato de exportación 131números de campo 131números de tabla 131registros de cabecera 131registros de datos 131

consultas de varias sentencias 230consultas SQL 141

exportaciónmáximo de tamaño de archivo 142

longitudes superiores a 32 KB 230contraseñas, en mayúsculas y minúsculas 9contraseñas que combinan mayúsculas y minúsculas 220convenios de resaltado viiiconvenios para resaltar viiicoste de consulta estimado, inhabilitar 225cursor

estabilidad, habilitar 230estado de 215

Ddatos

anchos de tipo 78exportación 74objeto

formato exportado IXF 82formatos 75

registros, exportación 78, 100registros D 86

datos CSVexportación 101

datos de coma flotante decimal de formato ampliadoVéase tipo de datos DECFLOAT

datos de coma flotante decimal de formato largoVéase tipo de datos DECFLOAT

datos LOBexportación 99

datos temporalescontrastado con almacenamiento temporal 144global relacionada con el archivo de vertido 221global relacionada con la impresión 221

276 Developing DB2 QMF applications

Page 289: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

datos temporales (continuación)variables globales para el rastreo 221

DB2 para VM o VSECONECTAR, mandato 9conexiones remotas 9

DECFLOAT, tipo de datosexportación

formato de datos de columna, IXF 88definición de esquema en archivo XML exportado 99, 101delimitadores

entre sentencias en consultas SQL 230diagramas de sintaxis, cómo leer viiiDISEÑAR, mandato

restringir actualización de última fecha de uso 230distintivo de atención de usuario 215distintivo de atención para aplicaciones 215DSQABFA 157DSQABFAC 154DSQCIA 152DSQCOMM

Assembler 160C 165, 170campos de conjuntos 18COBOL 175definición 18DSQCOMMA 160DSQCOMMC 170manejo de errores 22texto de mensaje 150

EEDITAR, mandato 36ejecución interactiva de QMF, variable global 215EJECUTAR, mandato

panel de solicitud 10restringir actualización de última fecha de uso 230variables de sustitución 10

entorno CICSalteraciones temporales del parámetro de inicio del

programa 23Assembler 4

requisitos de z/OS 162cola de datos 4

colas de datos transitorias 144formato IXF 82utilización para transferir objetos QMF 74

interacción de DB2 23interfaz invocable 4mandato CONNECT 9región 23variables globales relacionadas con 221

entorno de CICSprogramas de COBOL 181

entornos multilingües 43especificación de importación/exportación XML 99estado de sesión QMF, variables para 215estimación de coste para la consulta, inhabilitar 225etiquetas CDATA en XML exportado 100etiquetas de célula en XML exportado 100etiquetas vs. nombres para cabeceras de columna 225exportación

cálculos de ancho para tipos de datos 78códigos hexadecimales para tipos de datos 75consideraciones sobre el almacenamiento 144consultas asistidas 103consultas QBE 142

exportación (continuación)consultas SQL 141datos CSV 101datos LOB 99datos y tablas 74formatos 103frente a guardado 74gráficas 142informes 103máximos de tamaño de archivo 142palabras clave utilizadas para códigos de edición 113procedimientos 141

exportarobjetos de formulario 73tipos de objeto 73

EXPORTAR, mandatoformulario, idioma nacional utilizado 230longitudes de nombre de columna 75, 225objeto de datos 74objeto de tabla 74restringir actualización de última fecha de uso 230TSO

especificar almacenamiento 230

Ffecha de último uso, listas de objetos 225, 230fecha de último uso para objetos

limitar a RUN, SAVE, IMPORT 230ordenar listas por 225

fecha modificada, ordenar listas por 225FIJAR GLOBAL, mandato 214

interfaz invocable 21filas

longitud máxima 230formato

exportación 103FORMATO.COLUMNAS

nombres de columna vs. etiquetas 225FORMATO.PRINCIPAL

nombres de columna vs. etiquetas 225mandato LAYOUT 113números de campo 113números de tabla 113palabras clave de tipo de datos en la exportación 113paneles

globales relacionados con 215registros de cabecera en la exportación 113registros de datos en la exportación 113soporte multicultural para SALVAR, EXPORTAR,

IMPORTAR 230traducción 113

formato de datos gráficos (GDF) 142formato de exportación CSV

máximo de tamaño de archivo 142formato de exportación IXF

binario 86carácter 86descripción 82ejemplos 96máximo de tamaño de archivo 142números de versión 82, 84soporte de nombre largo 83

formato de registro de datostipo de datos XML 100

formato HTML de informesexportación en 128

Índice 277

Page 290: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

formato HTML para informesmáximo de tamaño de archivo 142

formato QMF para exportar datos y tablas 75, 142formato VBS, exportaciones de datos XML 100formatos 124

codificadodefinición 73

datos, exportación 78datos de columna 86IXF 73, 82objeto de consulta asistida 131objeto de formulario 113objeto de informe 124registro de cabecera 75tabla 74

formularioexportación

máximo de tamaño de archivo 142importación 123traducción 113

FORTRANárea de comunicaciones 185DSQABFF 187DSQCOMM 190interfaz invocable 184ISPF 192llamadas a función 186macros 211programa de ejemplo 187TSO 192

GGDDM (gestor de representación gráfica de datos) 48gestor de bases de datos, global que almacena el tipo 215GRAPHIC, tipo de datos

exportaciónformato de datos de columna, IXF 88

Hhoja de estilo para archivos XML exportados 101

IICU (Interactive Chart Utility) 48ID de subsistema, variable global 215ID de usuario, conexiones de base de datos 215identificador de juego de caracteres codificados, exportaciones

XML 99idiomas soportados

traduccionesVéase soporte multicultural

importación 73, 103información de nivel de objeto 103objeto de consulta asistida 139objeto de formulario 113tablas creadas fuera de QMF 74

IMPORTAR, mandatodefinición 73idioma nacional utilizado, IMPORT FORM 230restringir actualización de última fecha de uso 230

información de la interfaz de programación 258información de servicio viiiinformación de soporte viiiinformación sobre migración 103

información SQLSTATE, mostrar 245informes

cabecera de ejemplo 124datos de fila 108datos de tabla 107ejecuciones de procedimiento almacenado

Véase procedimiento almacenadoejemplo de exportación 124exportación 74

máximo de tamaño de archivo 142exportados entre 129formato de exportación 124HTML 128impresión

caracteres de control de carro 230longitud de fila, definir 230minisesión 68números de campo 124números de tabla 124objeto 2

formato de exportación 124números de campo 124números de tabla 124por 124

panel 2por 124registros 103registros (L) de línea 110registros de exportación 124suprimir después de que se ejecute la consulta 225usos de la exportación 124visualización de texto 50

instrucción CALL 15interfaces de programación de aplicaciones

interfaz de mandatosVéase mandatos, interfaz

interfaz invocableVéase interfaz invocable

procedimiento almacenado (sólo TSO)Véase interfaz de procedimiento almacenado

interfaces para QMFinterfaz de mandatos

Véase mandatos, interfazinterfaz de procedimiento almacenado

Véase interfaz de procedimiento almacenadointerfaz invocable

Véase interfaz invocableinterfaz de procedimiento almacenado

parámetro DSQSDBLG 56restricciones de acceso a datos remotos 9

interfaz invocableaplicación, ejecución 22área de comunicaciones 3

C 170campos de conjuntos 18COBOL 179definición 18manejo de errores 22

CICS, ejecución en 23COBOL 175códigos de retorno 20depuración de aplicaciones 147descripción 17FORTRAN 184información de proceso de mandatos 17ISPF 3lenguajes 4, 17, 151

278 Developing DB2 QMF applications

Page 291: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

interfaz invocable (continuación)llamada desde procedimiento con lógica 15macros 211mandato GET GLOBAL 47mandato START 3

iniciar QMF 21sintaxis 55

mandatos 21PL/I 194programa 3programas de ejemplo 3

Assembler 154C 168COBOL 178

REXXdescripción 204invocación con 7usos 3variables de comunicaciones 204

ISPF (Interactive System Productivity Facility)interfaz invocable 35

Llectura sin confirmar, habilitar 230lenguaje C

área de comunicaciones 165correlación 165DSQCOMM 170

CICS 172interfaz invocable 165ISPF 173llamadas a función 166programas de ejemplo 168requisitos de interfaz 166TSO 173

lenguajes soportadosprogramación de la interfaz invocable 4

llamadas a funciónC 166DSQCIC 166DSQCICE 166

llamadas de programa 17LONG VARGRAPHIC, tipo de datos

exportaciónformato de datos de columna, IXF 88

longitudes máximasconsultas SQL 230

Mmacros, interfaz de producto 211macros de interfaz de producto 211mandato ADDRESS 15, 31mandato CAMBIAR

confirmación del Editor de tabla 223mandato CONNECT

contraseñas que combinan mayúsculas y minúsculas 9DB2 para VM o VSE 9descripción 45ejemplo 45procedimientos 9

mandato CONVERT QUERYrestringir actualización de última fecha de uso 230variables globales para 244

mandato DESCRIBEvistas que soportan 230

mandato ENDconfirmación del Editor de tabla 223descripción 46interfaz de mandatos 27reejecución de procedimientos iniciales 7sesión interactiva 208tipos de sesión 46

mandato EXIT 47mandato EXPORT

DATA 74especificación de XML utilizada 99formatos

palabras clave de código de edición 113opción IXF 82utilización de CICS 144

mandato GET GLOBAL 21, 47mandato IMPORT

errores y avisos durante la ejecución de 113especificación de XML utilizada 99opción DATA 102utilización de CICS 144

mandato INTERACTdescripción 48formulario de mandato 50sesión

finalización 48formato 48terminación 47

mandato LAYOUT 113mandato LISTAR

orden de elementos, cambiar 225parámetro predeterminado OWNER 230vistas subyacentes

globales que almacenan nombres de vista 230vistas subyacentes, globales para 230

mandato MESSAGEdescripción 50ejemplos 50opciones 50paneles de ayuda de QMF 50paneles ISPF 50rastreo 149supresión de la ejecución del procedimiento lineal 50visualización de texto 50

mandato PREVIOUSconfirmación del Editor de tabla 223

mandato PRINTCICS

nombre/tipo de cola 221variables globales

restringir última fecha de uso 230suprimir caracteres de control de carro 230

mandato RENOVARconfirmación del Editor de tabla 223

mandato RUNvariables de sustitución incorporadas 15

mandato RUN QUERYconsultas de varias sentencias 230consultas SQL superiores a 32 KB 230variables globales para mensajes 245

mandato SAVE DATA 74mandato SET GLOBAL

interfaz invocable 53sintaxis 53sintaxis ampliada 53

Índice 279

Page 292: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

mandato SET GLOBAL (continuación)solicitud de variables 11

mandato SIGUIENTEconfirmación del Editor de tabla 223

mandato sinónimodefiniciones 220

mandato STARTárea de comunicaciones de interfaz 18depuración de errores 150inicio de QMF 21, 55palabras clave

DSQADPAN 56DSQALANG 56DSQSBSTG 56DSQSCMD 56DSQSDBCS 56DSQSDBNM 56DSQSDBQN 56DSQSDBQT 56DSQSDBUG 56DSQSIROW 56DSQSMODE 56DSQSMRFI 56DSQSPILL 56DSQSPRID 56DSQSPTYP 56DSQSRSTG 56DSQSRUN 56DSQSSPQN 56DSQSSUBS 56lista 56

sintaxis 55mandato SUPRIMIR

confirmación del Editor de tabla 223mandato TRACE 63

ejemplo de PL/I 64mandato VACIAR

confirmación del Editor de tabla 223mandatos

aplicaciones 45aplicaciones bilingües 43código de retorno 13EJECUTAR 10entorno 31específico de sistema 9globales que almacenan la salida del mensaje 222idioma nacional, definir 230INTERACT 48interfaz 2

códigos de retorno 27descripción 25invocación desde un programa 26programa de ejemplo 25requisitos 4servicio SELECT 26

longitud 17SET GLOBAL 53variable de idioma 41variables globales que soportan 215

mensajesmétodos para acceder xvariables globales relacionadas con

mensajes del mandato anterior 222mensajes RUN QUERY 245soporte de mensaje para códigos SQL positivos 225

minisesióninforme 68

minisesión (continuación)mandatos no válidos 68mandatos válidos 68

Modalidad de compatibilidad y captación de múltiplesfilas 56

modalidad de funcionamientovariable global que muestra 215

modalidad interactivaICU de GDDM 48procedimientos iniciales 7QMF 48

MOSTRAR, mandatoMOSTRAR BUSQUEDA, confirmación del Editor de

tabla 223MOSTRAR CAMBIO, confirmación del Editor de

tabla 223MOSTRAR GLOBALES 214

Nnivel de aislamiento para consultas 230NLF (característica de idioma nacional)

definida 39entornos de sesión 39entornos multilingües 43ID de idioma 33idioma 39requisitos de panel 39

NLF (Característica de idioma nacional)Véase soporte multicultural

nombre de ubicaciónVéase también acceso a datos remotovariable global que almacena 215

nombresordenar listas por 225para columnas, cambiar a etiquetas de base de datos 225vistas que soportan el mandato LIST, globales para 230

nombres de propietarioordenar listas por 225predeterminado para el mandato LIST 230variables globales relacionadas con 215

nombres de tres partes en mandatos QMFanomalías cuando MR=YES 56

notificación de códigos SQL positivos 225nueva modalidad de función y captación de múltiples

filas 56nulo

valorescarácter predeterminado para, Editor de tabla 223

numéricodatos

símbolo de moneda, cambiar 225número de release de QMF, variable global de 215número de versión

QMF, global que almacena 215versiones de IXF en exportación 82

Oobjeto

compartir 230fecha de último uso 225, 230tipo

ordenar listas por 225variables globales relacionadas con el actual 215

280 Developing DB2 QMF applications

Page 293: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

objeto DATAincompleto, habilitar panel Restablecer informe 230variables globales relacionadas con 215

objeto de datos incompletohabilitar panel Restablecer informe 230panel de solicitud 102

objetos bilingües 41objetos de gráfica 142opción de 64BIT, parámetro DSQSPTYP 56opción FILE, parámetro DSQSPTYP 56opción L de depuración 147opción SALVAR

mandato EDITAR TABLAglobales relacionados con 223

opción SKIP LOCKED DATA para sentencias SELECT 230opción USE CURRENTLY COMMITTED para sentencias

SELECT 230opción WAIT FOR OUTCOME para sentencias SELECT 230orden ascendente para listas 225orden de clasificación para el mandato LIST 225orden descendente para listas 225ordenar

elementos del mandato LIST, cambiar 225

Ppalabra clave BINARY vista en formularios exportados 113palabra clave CHAR vista en formularios exportados 113palabra clave DATE vista en formularios exportados 113palabra clave GRAPHIC vista en formularios exportados 113palabra clave NUMERIC vista en formularios exportados 113palabra clave TIME vista en formularios exportados 113palabra clave TIMEST vista en formularios exportados 113palabra clave TSTMPTZ vista en formularios exportados 113palabra clave UNKNOWN vista en formularios

exportados 113palabras clave 56

mandato START 56para códigos de edición, en archivo exportado 113

panel de estimación de coste relativo, inhabilitar 225panel de inicio 7panel de interrupción 113panel Restablecer informe, habilitar 230paneles 48

actual 48confirmación

sobrescrituras de almacenamiento temporal,impedir 230

estimación de coste relativo, inhabilitar 225ID

visualizar 225interactivo 48nombres

variables globales relacionadas con 215paneles de confirmación

Restablecer informe 230sobrescrituras temporales de almacenamiento 230

paneles de variación 113parámetro CASE del perfil QMF 220parámetro CONFIRM del perfil QMF 220parámetro DECIMAL del perfil QMF 220parámetro DSQSDBLG 56parámetro LANGUAGE, perfil QMF 220parámetro LENGTH del perfil QMF 220parámetro MODEL, perfil QMF 220parámetro MR

anomalías de nombres de tres partes 56

parámetro PRINTERperfil QMF 220

parámetro RESOURCE GROUP, perfil QMF 220parámetro SHARE del mandato SAVE 230parámetro SPACE, perfil QMF 220parámetro WIDTH, perfil QMF 220parámetros DSQ en el mandato START

DSQADPAN 56DSQALANG 56DSQSBSTG 56DSQSCMD 56DSQSDBCS 56DSQSDBNM 56DSQSDBQN 56DSQSDBQT 56DSQSDBUG 56DSQSIROW 56DSQSMODE 56DSQSMRFI 56DSQSPILL 56DSQSPLAN 56DSQSPRID 56DSQSPTYP 56DSQSRSTG 56DSQSRUN 56DSQSSPQN 56DSQSSUBS 56

PDF 36, 37perfil

impedir sobrescrituras de valores no guardados 230variables globales relacionadas con 220

PL/Iárea de comunicaciones 194CICS 201DSQABFP 197DSQCOMM 199interfaz invocable 194ISPF 202llamadas a función 196macros 211programa de ejemplo 197TSO 202z/OS 201

plan de aplicaciónID predeterminado, V11 56

plataforma VMrestricciones de nombre de tres partes 56

plataforma VSErestricciones de nombre de tres partes 56

procedimientoexportación

máximo de tamaño de archivo 142impedir sobrescrituras del panel PROC 230inicialización, definir variables durante 214invocación, volver a ejecutar 230procedimientos almacenados

Véase procedimiento almacenadoprocedimiento almacenado

especificar conjunto de resultados para informe 230iniciar QMF para TSO como

soporte de variable global 215procedimiento lineal

opción STOPPROC 50supresión 50

procedimiento Q.SYSTEM_INI 214procedimientos iniciales

almacenamiento 7

Índice 281

Page 294: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

procedimientos iniciales (continuación)aplicaciones bilingües 42CONECTAR, mandato 7escritura 7nombre, especificación 7

pugna por los recursos, reducir 230

QQBE (consulta por ejemplo)

especificaciones de archivo de importación/exportación 142

formato de exportación 142tamaño de archivo máximo en exportación 142

QMF interactivovariable global para la modalidad de funcionamiento 215

QMF por lotesvariable global para la modalidad de funcionamiento 215

RRACF y contraseñas que combinan mayúsculas y

minúsculas 220rastreabilidad 63rastrear

códigos SQL positivos 225nivel de rastreo de aplicación 215parámetro de perfil para 220variables globales para 221

rastreoasignación de archivo a 149creación de definiciones de rastreo 37definición 147desactivación 149ejemplo 149mandatos ISPF 37opción L 147una opción 148

rastreo de servicio 63ejemplo de PL/I 64

registro, rastreo 225registro de cabecera

campos 103exportaciones XML 99formato 75IXF 82longitud, cálculo 80nivel de objeto 103objeto de formulario 113

registro de fin de objeto (E) 109registro de rastreo DSQDEBUG

Véase también rastrearregistrar códigos SQL positivos 225

registro espacial SQLID 215registros

cabecera 103columna (C) 84continuación de datos (C) 112datos (D) 86datos de aplicación (*) 109descripción de tabla (T) 83formato fijo 103formato variable 105formatos 78valor de datos (V) 106

registros de metadatos en XML exportado 100

registros de tabla en archivos exportados 83rendimiento

opciones de resolución de acceso simultáneo 230requisito previo de DB/2 para z/OS, conocimientos viiresolución de acceso simultáneo 230rutina de inicialización DSQUOPTS 230RUW (unidad de trabajo remota) 9

SSALVAR, mandato

formulario, idioma nacional utilizado 230parámetro SHARE, global que define 230restringir actualización de última fecha de uso 230

sentencia ARG 12sentencia CALL

especificar conjunto de resultados para informe 230sentencia PARSE ARG 12sentencia PREPARE, resolución de acceso simultáneo 230sentencias SELECT

opciones de resolución de acceso simultáneo 230señal en instrucción de error 13servicio PGM SELECT, ISPF 35sesión, variables que registran el estado 215sesión QMF por lotes, globales para 215signo + en las columnas del Editor de tabla, cambiar 223signo de dólar en informes, cambiar 225símbolo de moneda, cambiar 225símbolo de moneda euro, habilitar 225sinónimos, mandato 71sinónimos de mandato

creación 71ejemplo 2tabla NLF 39

sintaxis ampliadamandato SET GLOBAL 53

sistema operativo, variable global para 215sobrescrituras de almacenamiento temporal, impedir 230Soporte DBCS

cambiar indicador nulo, Editor de tabla 223cambiar indicador predeterminado, Editor de tabla 223variables globales relacionadas con 215

soporte multiculturalformularios (SAVE/EXPORT/IMPORT) 230variables globales relacionadas con 215, 230

SQL, palabras claveconsultas de varias sentencias

Véase consultas de varias sentenciasSELECT

opciones de resolución de acceso simultáneo 230subrutina DSQCIX 206

Ttablas

consulta asistida, números 131creación fuera de QMF 82exportación 74formulario, números 113informe. números 124mandato LISTAR

variables globales relacionadas con 230objeto

especificaciones de archivo de importación/exportación 142

importación 74

282 Developing DB2 QMF applications

Page 295: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

tablas (continuación)objeto (continuación)

importar/exportar reglas 102procesar 74

registros de descripción (T) 83, 107registros de fila (R) 108

teclas de funcióndonde se almacenan las definiciones 220

términos de acuerdo de licencia de VUE (variable global) 215tipo de datos BIGINT

exportación 75palabras clave de código de edición, formulario

exportado 113tipo de datos BINARY

ancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación 78

palabras clave de código de edición, formularioexportado 113

tipo de datos CHARancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113tipo de datos DATE

ancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113formato ISO en la exportación 75

tipo de datos DECFLOATancho de columna en exportación 78ancho de columna en la exportación 75códigos SQLTYPE en la exportación (formato QMF) 75exportación

palabras clave de código de edición, formularioexportado 113

tipo de datos DECIMALancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113tipo de datos Extensible Markup Language (XML)

Véase tipo de datos XMLtipo de datos FLOAT

ancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113tipo de datos GRAPHIC

ancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

palabras clave de código de edición, formularioexportado 113

tipo de datos INTEGERancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75

tipo de datos INTEGER (continuación)exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113tipo de datos LONG VARCHAR

exportaciónformato de datos de columna, IXF 88

tipo de datos SMALLINTancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113tipo de datos TIME

ancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113formato ISO en la exportación 75

tipo de datos TIMESTAMPancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113formato ISO en la exportación 75

tipo de datos TIMESTAMP WITH TIME ZONEancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88formatos de registro de columna 84números de versión de IXF para exportación 82, 84palabras clave de código de edición, formulario

exportado 113formato ISO en la exportación 75

tipo de datos VARBINARYancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88palabras clave de código de edición, formulario

exportado 113tipo de datos VARCHAR

ancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88tipo de datos VARGRAPHIC

ancho de columna en exportación 78códigos SQLTYPE en la exportación (formato QMF) 75exportación

formato de datos de columna, IXF 88exportar

palabras clave de código de edición, formularioexportado 113

tipo de datos XMLexportación 99

consideraciones sobre el almacenamiento 102formato de registros de datos 100máximo de tamaño de archivo 142

tipos de datos, consideraciones sobre la exportación 75, 113

Índice 283

Page 296: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

tipos de datos, exportar consideraciones 78traducciones disponibles en QMF

Véase soporte multiculturalTSO

almacenamiento ampliado para datos de vertido 56contraseñas en mayúsculas y minúsculas en RACF 9programas C 173programas de Assembler 163programas de interfaz invocable C 173programas de interfaz invocable REXX 207programas de la interfaz invocable de Assembler 163programas REXX 207

Uubicación actual 45Una opción para depurar 148unidad de trabajo remota

comportamiento de mandato 45

Vvalidación de archivo XML exportado 101valores de parámetro DATAFORMAT, mandato EXPORT

QMF 75, 225valores monetarios, cambiar símbolo de moneda 225variable de distintivo de terminación 215variable DSQEC_NLFCMD_LANG 41, 230variable global de acuerdo de licencia de VUE 215variable global de acuerdo de licencia para QMF VUE 215variable global de entorno 215variables

agrupación 17definir 10globales 10, 213

sustitución 10manejo de errores 22rc 13reglas 54solicitud de 11sustitución 10

variables de sustitución 10asignación de valores 10llamadas a programa de REXX 15sintaxis 10variables globales, valor 10

variables globalesalmacenamiento ampliado para datos de vertido 230almacenamiento de mandato EXPORTAR (TSO) 230autoridad de administrador 215autorización de administrador 230cantidad de desplazamiento 225caracteres de control de carro en salidas impresas 230CICS

datos de vertido 221impresión 221rastrear 221

clases deDSQAO 215DSQAP 220, 221DSQCM 222DSQCP 223DSQEC 230DSQQC 244DSQQM 245DXY 245

variables globales (continuación)clases de (continuación)

interfaz de procedimiento almacenado 215conjunto de resultados para procedimientos

almacenados 230CONNECT ID 215consultas SQL de varias sentencias 230consultas SQL superiores a 32 KB 230creación 53creación de variables 53definición 53

mandato SET GLOBAL 53definiciones de mandato sinónimo 220definir en la inicialización 214, 230definir/visualizar 214distintivo de atención de usuario 215estado de cursor de base de datos 215etiquetas de columna vs. nombres 225fecha de último uso en objetos 230filas captadas, número de 215funcionamiento por lotes vs. interactivo 215gestor de bases de datos 215ID de panel, visualizar 225ID de subsistema 215interfaz de procedimiento almacenado 215lista de 213longitud de fila en informes QMF 230longitud de nombres de columna en EXPORT 75, 225mandato LISTAR

OWNER predeterminado 230vistas que soportan 230

mensajes RUN QUERY 245modelo de consulta 215nivel de aislamiento para consultas 230nivel de rastreo de aplicación 215nombre de base de datos local 215nombre de panel actual 215nombre de propietario 215nombre de ubicación remota 215notificación de códigos SQL positivos 225objeto actual 215orden de lista 225panel de estimación de coste relativo 225panel de formulario actual 215pantalla del panel Restablecer informe 230parámetro CASE del perfil 220parámetro CONFIRM del perfil 220parámetro LANGUAGE de perfil 220parámetro LENGTH del perfil 220parámetro MODEL del perfil 220parámetro PRINTER del perfil 220parámetro RESOURCE GROUP del perfil 220parámetro SHARE del mandato SAVE 230parámetro SPACE del perfil 220parámetro TRACE de perfil 220parámetro WIDTH de perfil 220procedimiento de invocación, volver a ejecutar 230QMF utilizado a través de RUW 220reglas para 54resolución de acceso simultáneo 230salida de mensaje 222símbolo de moneda 225sobrescrituras temporales de almacenamiento 230Soporte DBCS 215soporte de mandato 215soporte multicultural 215, 230subtipos de consulta 215

284 Developing DB2 QMF applications

Page 297: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

variables globales (continuación)versión/release 215visualización de informe después de RUN QUERY 225

variables globales de sesión 245variables globales DSQAO 215variables globales DSQAP 220, 221variables globales DSQCM 222variables globales DSQCP 223variables globales DSQEC 230variables globales DSQQC 244variables globales DSQQM 245variables globales DXY 245variaciones, FORM.DETAIL

variable global que almacena el número 215vista

mandato LIST, globales relacionadas con 230VISUALIZAR, mandato

restringir actualización de última fecha de uso 230

Índice 285

Page 298: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

286 Developing DB2 QMF applications

Page 299: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones
Page 300: Developing DB2 QMF applicationspublib.boulder.ibm.com/epubs/pdf/c1184590.pdfocupan del desarrollo de aplicaciones que utilizan funciones de QMF. Estos temas le ayudan a: v Tomar decisiones

����

Número de Programa: 5615-DB25697-P43

Impreso en España

SC11-8459-00