IMS DB - Cobol Básico


Advertisements

Queremos incluir DL/I COBOL chamadas dentro programa de aplicação para se comunicar com o IMS banco de dados. Utilizamos os seguintes DL/I as declarações no programa em COBOL para acessar o banco de dados:

  • Entrada Comunicação
  • Retrocesso Declaração
  • Comando Call

Entrada Comunicação

Ele é usado para passar o comando da DL/I do programa em COBOL. Aqui é a sintaxe da entrada declaração:

ENTRY 'DLITCBL' USING pcb-name1
                     [pcb-name2]

A declaração acima é codificado no processo Divisão de um programa em COBOL. Vamos entrar nos detalhes da entrada declaração no programa em COBOL:

  • O lote a inicialização módulo aciona o programa de aplicação e é executado sob o seu controlo.

  • O DL/I carrega o necessário módulos e blocos de controle e o programa aplicativo e controle é dado para o programa de aplicação.

  • DLITCBL representa a DL/I a COBOL. A entrada é usado para definir o ponto de entrada do programa.

  • Quando chamamos um sub-programa em COBOL, seu endereço também é fornecido. Da mesma forma, quando o DL/I dá o controle para o programa de aplicação, ele também fornece o endereço de cada PCB definida no programa do PSB.

  • Todos os PCB utilizado no programa de aplicação deve ser definida dentro da seção de articulação do programa em COBOL porque PCB reside fora do programa aplicativo.

  • A PCB definição dentro da articulação Seção é chamada como os PCB máscara.

  • A relação entre máscaras e real PCB PCB no armazenamento é criado através de uma lista do PCB na entrada. A seqüência da lista na entrada declaração deverá ser o mesmo que eles apareçam no PSBGEN.

Retrocesso Declaração

Ele é usado para passar o controle para o programa de controle DO IMS. Sintaxe é a seguinte do retrocesso declaração:

GOBACK

Abaixo estão listados os pontos fundamentais para a nota sobre o retrocesso declaração:

  • RETROCESSO é codificado no final do programa aplicativo. Ela devolve o controle ao DL/I, a partir do programa.

  • Não devemos usar PARAR CORRER como ele retorna o controle para o sistema operacional. Se quisermos usar PARAR CORRER, a DL/I nunca tem a oportunidade de realizar sua encerra funções. É por essa razão que, no DL/I programas de aplicação, retrocesso declaração é usada.

  • Antes da emissão de um retrocesso, todos os não-DL/I datasets utilizados na linguagem COBOL programa aplicativo deve ser fechada, caso contrário, o programa irá encerrar anormalmente.

Comando Call

Comando Call é utilizado para solicitar a DL/I serviços como executar determinadas operações no IMS banco de dados. Aqui é a sintaxe do comando call:

CALL 'CBLTDLI' USING DLI Function Code
                        PCB Mask
                        Segment I/O Area
                        [Segment Search Arguments]

A sintaxe acima mostra os parâmetros que você pode usar com o comando call. Vamos discutir cada um deles na tabela a seguir:

S.No. Parâmetros Descrição
1

Código função DLI

Identifica o DL/I função a ser executada. Este argumento é o nome dos quatro campos de caracteres que descrevem a operação de I/O.

2

Máscara PCB

A PCB definição dentro da articulação Seção é chamada como os PCB máscara. Eles são usados na entrada. Não SELECIONAR, ATRIBUIR, abrir ou fechar as declarações são necessárias.

3

Segmento Área de I/O.

Nome de um input/output área de trabalho. Esta é uma área do programa de aplicação em que o DL/I coloca um segmento pedido.

4

Segmento argumentos de Pesquisa

Estes são parâmetros opcionais dependendo do tipo de apelo. Eles são usados para pesquisar segmentos de dados dentro do IMS banco de dados.

Abaixo estão os pontos de observação sobre a chamada declaração:

  • COBOL CBLTDLI representa a DL/I. É o nome de um módulo de interface que é link editado com o programa do módulo objeto.

  • Depois de cada DL/apelo, a DLI armazena um código de status para o PCB. O programa pode usar este código para determinar se a chamada foi bem sucedida ou não.

Exemplo

Para uma maior compreensão da linguagem COBOL, você pode ir através de nossa linguagem COBOL tutorialhere. O exemplo a seguir mostra a estrutura de um programa em COBOL que utiliza bancos de dados IMS e DL/I as chamadas. Vamos discutir em detalhe cada um dos parâmetros utilizados no exemplo nos 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.
Advertisements