IMS DB - Conceptos básicos de Cobol
Incluimos llamadas DL / I dentro del programa de aplicación COBOL para comunicarse con la base de datos IMS. Usamos las siguientes declaraciones DL / I en el programa COBOL para acceder a la base de datos:
- Declaración de entrada
- Declaración de retorno
- Declaración de llamada
Declaración de entrada
Se utiliza para pasar el control del DL / I al programa COBOL. Aquí está la sintaxis de la declaración de entrada:
ENTRY 'DLITCBL' USING pcb-name1
[pcb-name2]
La declaración anterior está codificada en el Procedure Divisionde un programa COBOL. Entremos en los detalles de la declaración de entrada en el programa COBOL -
El módulo de inicialización por lotes activa el programa de aplicación y se ejecuta bajo su control.
El DL / I carga los bloques y módulos de control necesarios y el programa de aplicación, y el control se le da al programa de aplicación.
DLITCBL son las siglas de DL/I to COBOL. La declaración de entrada se utiliza para definir el punto de entrada en el programa.
Cuando llamamos a un subprograma en COBOL, también se proporciona su dirección. Asimismo, cuando el DL / I cede el control al programa de aplicación, también proporciona la dirección de cada PCB definida en la PSB del programa.
Todas las PCB utilizadas en el programa de aplicación deben definirse dentro del Linkage Section del programa COBOL porque PCB reside fuera del programa de aplicación.
La definición de PCB dentro de la sección de vinculación se denomina como PCB Mask.
La relación entre las máscaras de PCB y los PCB reales almacenados se crea enumerando los PCB en la declaración de entrada. La secuencia de listado en la declaración de entrada debe ser la misma que aparece en el PSBGEN.
Declaración de retorno
Se utiliza para devolver el control al programa de control IMS. A continuación se muestra la sintaxis de la declaración Goback:
GOBACK
A continuación se enumeran los puntos fundamentales a tener en cuenta sobre la declaración Goback:
GOBACK está codificado al final del programa de aplicación. Devuelve el control a DL / I desde el programa.
No debemos usar STOP RUN ya que devuelve el control al sistema operativo. Si usamos STOP RUN, el DL / I nunca tiene la oportunidad de realizar sus funciones de terminación. Por eso, en los programas de aplicación DL / I, se utiliza la instrucción Goback.
Antes de emitir una declaración Goback, todos los conjuntos de datos que no sean DL / I utilizados en el programa de aplicación COBOL deben cerrarse; de lo contrario, el programa finalizará de forma anormal.
Declaración de llamada
La declaración de llamada se utiliza para solicitar servicios DL / I, como ejecutar determinadas operaciones en la base de datos IMS. Aquí está la sintaxis de la declaración de llamada:
CALL 'CBLTDLI' USING DLI Function Code
PCB Mask
Segment I/O Area
[Segment Search Arguments]
La sintaxis anterior muestra los parámetros que puede utilizar con la declaración de llamada. Discutiremos cada uno de ellos en la siguiente tabla:
S.No. | Descripción de parámetros |
---|---|
1 | DLI Function Code Identifica la función DL / I a realizar. Este argumento es el nombre de los cuatro campos de caracteres que describen la operación de E / S. |
2 | PCB Mask La definición de PCB dentro de la sección de vinculación se denomina máscara de PCB. Se utilizan en la declaración de entrada. No se requieren declaraciones SELECT, ASSIGN, OPEN o CLOSE. |
3 | Segment I/O Area Nombre de un área de trabajo de entrada / salida. Ésta es un área del programa de aplicación en la que el DL / I coloca un segmento solicitado. |
4 | Segment Search Arguments Estos son parámetros opcionales según el tipo de llamada emitida. Se utilizan para buscar segmentos de datos dentro de la base de datos IMS. |
A continuación se presentan los puntos a tener en cuenta sobre la declaración de llamada:
CBLTDLI son las siglas de COBOL to DL/I. Es el nombre de un módulo de interfaz que se edita en enlace con el módulo de objeto de su programa.
Después de cada llamada DL / I, el DLI almacena un código de estado en la PCB. El programa puede usar este código para determinar si la llamada tuvo éxito o no.
Ejemplo
Para comprender mejor COBOL, puede seguir nuestro tutorial de COBOL aquí . El siguiente ejemplo muestra la estructura de un programa COBOL que usa una base de datos IMS y llamadas DL / I. Discutiremos en detalle cada uno de los parámetros utilizados en el ejemplo en los próximos capítulos.
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST1.
DATA DIVISION.
WORKING-STORAGE SECTION.
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 '.
01 SEGMENT-I-O-AREA PIC X(150).
LINKAGE SECTION.
01 STUDENT-PCB-MASK.
05 STD-DBD-NAME PIC X(8).
05 STD-SEGMENT-LEVEL PIC XX.
05 STD-STATUS-CODE PIC XX.
05 STD-PROC-OPTIONS PIC X(4).
05 FILLER PIC S9(5) COMP.
05 STD-SEGMENT-NAME PIC X(8).
05 STD-KEY-LENGTH PIC S9(5) COMP.
05 STD-NUMB-SENS-SEGS PIC S9(5) COMP.
05 STD-KEY PIC X(11).
PROCEDURE DIVISION.
ENTRY 'DLITCBL' USING STUDENT-PCB-MASK.
A000-READ-PARA.
110-GET-INVENTORY-SEGMENT.
CALL ‘CBLTDLI’ USING DLI-GN
STUDENT-PCB-MASK
SEGMENT-I-O-AREA.
GOBACK.