IMS DB - COBOL GRUNDLAGEN



Wir umfassen sind DL / I ruft innerhalb COBOL-Anwendungsprogramm, mit IMS-Datenbank zu kommunizieren. Wir verwenden die folgenden DL / I-Anweisungen in COBOL-Programm auf die Datenbank zuzugreifen:

  • Eintrag Aussage
  • Goback Aussage
  • Call Aussage

Eintrag Aussage

Es wird verwendet, um übergeben die Steuerung von der DL / I auf die COBOL Programme. Hier ist die Syntax des Eintrags Aussage :

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

Die obige Aussage ist codierte in der Prozedur Teilung von einem COBOL-Programm . Lassen Sie uns gehen in die Details von Eintrags Anweisung in COBOL-Programm :

  • Die Batch Initialisierungsmodul löst das Anwendungsprogramm und wird unter seine Kontrolle hingerichtet.

  • Der DL / I lädt die erforderlichen Steuerblöcke und Module und das Anwendungsprogramm und die Steuerung wird gegeben an das Anwendungs programm .

  • DLITCBL steht für DL / I, um COBOL. Die Eintrag Anweisung wird verwendet, um den Einstieg Punkt in das Programm zu definieren. .

  • Wenn wir ein Unterprogramm in COBOL aufrufen, wird seine Adresse ebenfalls vorhanden. Ebenso, wenn der DL / I gibt die Steuerung an das Anwendungsprogramm, sondern bietet auch die Adresse jedes PCB definiert in der Programms PSB .

  • Alle PCBs im Anwendungs programm verwendet, müssen definiert innen des Linkage Section von des COBOL-Programm, weil PCB befindet sich außerhalb des Anwendungs programms festgelegt werden.

  • Die PCB definition innen der Linkage Section wird namens als PCB-Maske.

  • Der Zusammenhang zwischen PCB Masken und tatsächlichen PCB in Lagerung wird von der Liste der PCB in der Eingabe-Anweisung erstellt. Die Reihenfolge der Auflistung im Eingabe Erklärung sollte gleich sein, wie sie in der PSBGEN angezeigt.

GoBack Erklärung

Es wird verwendet, um die Kontrolle wieder an den IMS-Steuerungsprogramm übergeben. Es folgt die Syntax der GoBack Erklärung ab:

GOBACK

Liste unten sind die grundlegend Punkte zu beachten über die GoBack Aussage :

  • GOBACK ist am Ende des Anwendungsprogramms codiert. Es gibt die Steuerung an DL / I aus dem Programm.

  • Wir sollten nicht Verwendung STOP RUN, da sie die Kontrolle an das Betriebssystem zurückgibt. Wenn wir STOP RUN, die DL / I wird nie eine Chance, zu ausführen seine Terminierungs Funktionen. Deshalb, in DL / I Anwendungsprogramme, GoBack-Anweisung wird verwendet.

  • Vor Erteilung einer GoBack aussage, alle nicht-DL / I-Datensätzen in der COBOL-Anwendungsprogramm verwendet, müssen geschlossen sein, sonst wird das Programm anormal beendet.

Call-Anweisung

Call-Anweisung wird verwendet zu anfordern für DL/I services wie als Ausführung bestimmter Vorgänge in der Datenbank IMS. Hier ist die Syntax der Aufruf Anweisung :

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

Die Syntax oben zeigt Parameter, die Sie mit dem Anruf-Anweisung verwenden können. Wir werden jeden von ihnen in der folgenden Tabelle zu diskutieren:

S.No. Parameter mit der Beschreibung
1

DLI Funktionscode

Identifiziert der DL / I-Funktion werden ausgeführt . Dieses Argument ist der Name der vier Zeichenfelder, die die I / O-Operation zu beschreiben.

2

PCB-Maske

Die PCB definition in der Linkage Section wird als PCB-Maske genannt. Sie werden in der Eingabe-Anweisung verwendet. Kein SELECT, zuweisen, öffnen, oder ZU Aussagen sind erforderlich.

3

Segment E / A-Bereich

Name eines Eingabe / Ausgabe-Arbeitsbereich. Dies ist ein Bereich des Anwendungsprogramms, in die der DL / I stellt eine angeforderte Segment.

4

Segmentsuchargumente

Diese sind optionalen Parametern abhängig von der Art des Anrufs ausgestellt. Sie werden verwendet, um Datensegmente innen der IMS-Datenbank zu suchen.

Da unten sind die Punkte, zu beachten über die Call-Anweisung:

  • CBLTDLI Steht für COBOL zu DL / I. Es ist der Name eines Schnittstellenmoduls, d.h. Verknüpfung bearbeitet mit Ihr Programm Objektmodul.

  • Nach jeder DL / I nennen, speichert das DLI einen Statuscode in der Leiterplatte. Das Programm kann diesen Code verwenden, um festzustellen, ob der Anruf erfolgreich war oder gescheitert.

Beispiel

Für mehr Verständnis für COBOL, können Sie unsere COBOL Tutorial gehen hier. Das folgende Beispiel zeigt die Struktur einer COBOL-Programm, das IMS-Datenbank und nutzt DL / I nennt. Wir werden im Detail zu besprechen jede der im Beispiel die in den nächsten Kapiteln verwendeten Parameter.

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