IMS DB - Funciones DL / I
La función DL / I es el primer parámetro que se utiliza en una llamada DL / I. Esta función indica qué operación se realizará en la base de datos IMS por la llamada IMS DL / I. La sintaxis de la función DL / I es la siguiente:
01 DLI-FUNCTIONS.
05 DLI-GU PIC X(4) VALUE 'GU '.
05 DLI-GHU PIC X(4) VALUE 'GHU '.
05 DLI-GN PIC X(4) VALUE 'GN '.
05 DLI-GHN PIC X(4) VALUE 'GHN '.
05 DLI-GNP PIC X(4) VALUE 'GNP '.
05 DLI-GHNP PIC X(4) VALUE 'GHNP'.
05 DLI-ISRT PIC X(4) VALUE 'ISRT'.
05 DLI-DLET PIC X(4) VALUE 'DLET'.
05 DLI-REPL PIC X(4) VALUE 'REPL'.
05 DLI-CHKP PIC X(4) VALUE 'CHKP'.
05 DLI-XRST PIC X(4) VALUE 'XRST'.
05 DLI-PCB PIC X(4) VALUE 'PCB '.
Esta sintaxis representa los siguientes puntos clave:
Para este parámetro, podemos proporcionar cualquier nombre de cuatro caracteres como campo de almacenamiento para almacenar el código de función.
El parámetro de función DL / I está codificado en la sección de almacenamiento de trabajo del programa COBOL.
Para especificar la función DL / I, el programador necesita codificar uno de los nombres de datos de nivel 05 como DLI-GU en una llamada DL / I, ya que COBOL no permite codificar literales en una declaración CALL.
Las funciones DL / I se dividen en tres categorías: Obtener, Actualizar y Otras funciones. Analicemos cada uno de ellos en detalle.
Obtener funciones
Las funciones de obtención son similares a la operación de lectura admitida por cualquier lenguaje de programación. La función Obtener se utiliza para recuperar segmentos de una base de datos IMS DL / I. Las siguientes funciones Get se utilizan en IMS DB:
- Sea único
- Obtener siguiente
- Obtener siguiente dentro de los padres
- Mantente único
- Espera Siguiente
- Get Hold Next dentro de Parent
Consideremos la siguiente estructura de la base de datos IMS para comprender las llamadas de función DL / I:
Sea único
El código 'GU' se utiliza para la función Get Unique. Funciona de manera similar a la instrucción de lectura aleatoria en COBOL. Se utiliza para buscar una ocurrencia de segmento particular basada en los valores del campo. Los valores de campo se pueden proporcionar utilizando argumentos de búsqueda de segmento. La sintaxis de una llamada GU es la siguiente:
CALL 'CBLTDLI' USING DLI-GU
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Si ejecuta la declaración de llamada anterior proporcionando valores apropiados para todos los parámetros en el programa COBOL, puede recuperar el segmento en el área de E / S del segmento de la base de datos. En el ejemplo anterior, si proporciona los valores de campo de Biblioteca, Revistas y Salud, obtendrá la aparición deseada del segmento Salud.
Obtener siguiente
El código 'GN' se utiliza para la función Get Next. Funciona de manera similar a la siguiente declaración de lectura en COBOL. Se utiliza para buscar ocurrencias de segmentos en una secuencia. El patrón predefinido para acceder a las ocurrencias de los segmentos de datos está abajo en la jerarquía, luego de izquierda a derecha. La sintaxis de una llamada GN es la siguiente:
CALL 'CBLTDLI' USING DLI-GN
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Si ejecuta la declaración de llamada anterior proporcionando valores apropiados para todos los parámetros en el programa COBOL, puede recuperar la ocurrencia del segmento en el área de E / S del segmento de la base de datos en un orden secuencial. En el ejemplo anterior, comienza accediendo al segmento Biblioteca, luego al segmento Libros, y así sucesivamente. Realizamos la llamada GN una y otra vez, hasta llegar a la ocurrencia del segmento que queremos.
Obtener siguiente dentro de los padres
El código 'GNP' se usa para Get Next dentro de Parent. Esta función se utiliza para recuperar ocurrencias de segmento en secuencia subordinada a un segmento principal establecido. La sintaxis de una llamada GNP es la siguiente:
CALL 'CBLTDLI' USING DLI-GNP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Mantente único
El código 'GHU' se utiliza para Get Hold Unique. La función Hold especifica que actualizaremos el segmento después de la recuperación. La función Get Hold Unique corresponde a la llamada Get Unique. A continuación se muestra la sintaxis de una llamada GHU:
CALL 'CBLTDLI' USING DLI-GHU
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Espera Siguiente
El código 'GHN' se utiliza para Get Hold Next. La función Hold especifica que actualizaremos el segmento después de la recuperación. La función Get Hold Next corresponde a la llamada Get Next. A continuación se muestra la sintaxis de una llamada GHN:
CALL 'CBLTDLI' USING DLI-GHN
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Get Hold Next dentro de Parent
El código 'GHNP' se usa para Get Hold Next dentro de Parent. La función Hold especifica que actualizaremos el segmento después de la recuperación. La función Get Hold Next within Parent corresponde a la llamada Get Next within Parent. A continuación se muestra la sintaxis de una llamada GHNP:
CALL 'CBLTDLI' USING DLI-GHNP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Funciones de actualización
Las funciones de actualización son similares a las operaciones de reescritura o inserción en cualquier otro lenguaje de programación. Las funciones de actualización se utilizan para actualizar segmentos en una base de datos IMS DL / I. Antes de usar la función de actualización, debe haber una llamada exitosa con la cláusula Hold para la ocurrencia del segmento. Las siguientes funciones de actualización se utilizan en IMS DB:
- Insert
- Delete
- Replace
Insertar
El código 'ISRT' se utiliza para la función Insertar. La función ISRT se utiliza para agregar un nuevo segmento a la base de datos. Se utiliza para cambiar una base de datos existente o cargar una nueva. A continuación se muestra la sintaxis de una llamada ISRT:
CALL 'CBLTDLI' USING DLI-ISRT
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Eliminar
El código 'DLET' se utiliza para la función Eliminar. Se utiliza para eliminar un segmento de una base de datos IMS DL / I. A continuación se muestra la sintaxis de una llamada DLET:
CALL 'CBLTDLI' USING DLI-DLET
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Reemplazar
El código 'REPL' se usa para Get Hold Next dentro de Parent. La función Reemplazar se utiliza para reemplazar un segmento en la base de datos IMS DL / I. A continuación se muestra la sintaxis de una llamada REPL:
CALL 'CBLTDLI' USING DLI-REPL
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Otras funciones
Las siguientes funciones se utilizan en llamadas IMS DL / I:
- Checkpoint
- Restart
- PCB
Control
El código 'CHKP' se utiliza para la función Checkpoint. Se utiliza en las funciones de recuperación de IMS. A continuación se muestra la sintaxis de una llamada CHKP:
CALL 'CBLTDLI' USING DLI-CHKP
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Reiniciar
El código 'XRST' se utiliza para la función de reinicio. Se utiliza en las funciones de reinicio de IMS. A continuación se muestra la sintaxis de una llamada XRST:
CALL 'CBLTDLI' USING DLI-XRST
PCB Mask
Segment I/O Area
[Segment Search Arguments]
tarjeta de circuito impreso
La función PCB se utiliza en programas CICS en la base de datos IMS DL / I. A continuación se muestra la sintaxis de una llamada a PCB:
CALL 'CBLTDLI' USING DLI-PCB
PCB Mask
Segment I/O Area
[Segment Search Arguments]
Puede encontrar más detalles sobre estas funciones en el capítulo de recuperación.