Die verschiedenen Datenabrufmethoden verwendung in IMS DL / I Anrufe sind wie folgt:
Lassen uns Sie erwägen die folgende IMS-Datenbankstruktur, um den Datenabruf-Funktion verstehen, ruft:
Die Fundamentaldaten der GU Aufruf sind als folgt:
GU Anruf bekannt als Get Einzigartige Anruf. Es ist für die Zufallsverarbeitung verwendet wird.
Wenn eine Anwendung tut nicht aktualisieren regelmäßig auf die Datenbank oder wenn die Anzahl der Datenbankaktualisierungen weniger ist, dann verwenden wir Zufallsverarbeitung zu .
GU Aufruf wird verwendet, um den Zeiger an einer bestimmten Position zur weiteren sequentiellen Abruf zu statt..
GU Anrufe sind unabhängig von der Zeigerposition etabliert durch die früheren Forderungen .
GU Anrufverarbeitung basiert auf den einzigartigen Schlüsselfelder übermittelten in der Aufrufanweisung .
Wenn wir liefern ein Schlüsselfeld, nicht eindeutig ist, DL / I Retouren das erste Segment Auftreten des Schlüsselfeld.
CALL 'CBLTDLI' USING DLI-GU PCB-NAME IO-AREA LIBRARY-SSA BOOKS-SSA ENGINEERING-SSA IT-SSA
Das obige Beispiel zeigt, stellen wir eine GU Anruf indem sie Bereitstellung eine komplette Reihe von qualifizierten SSA. Es beinhaltet alle Schlüsselfelder Start-ab dem Stammebene auf die Segment Auftreten, dass wir abrufen möchten.
Wenn wir tut nicht Bereitstellung komplette Set von qualifizierten SSA in die Anruf, dann DL / I arbeitet wie folgt:
Wenn wir verwendung einen uneingeschränkten Bestätigungs SSA in einer GU Anruf, DL / I greift auf das erste Segment Auftreten in der Datenbank, die die von Ihnen angegebenen Kriterien erfüllt.
wenn wir Ausgabe eine GU Anruf ohne SSA, DL / I gibt das erste Vorkommen des Root-Segment in der Datenbank.
Wenn einige SSA bei Zwischenstufen ebene werden nicht in der Anruf erwähnt, dann DL / I nutzt entweder die etablierte Position oder den Standardwert von dem uneingeschränkten SSA für das Segment.
Die folgende Tabelle zeigt die relevanten Statuscodes nach einer GU Aufruf:
Statuscodes | Beschreibung |
---|---|
Plätze | Erfolgreicher Anruf |
GE | DL / I konnte nicht finden ein Segment trafen das Kriterien spezifiziert die in der Anruf. |
Die Grundlagen der GN Aufruf sind wie folgt:
GN Anruf bekannt als Get Nächster Anruf. Es ist für die Grund sequentielle Verarbeitung verwendet wird.
Die Anfangs Position des Zeigers in der Datenbank ist vor dem Wurzelsegment des ersten Datenbank-Eintrag.
Die Datenbank Zeigerposition ist bevor das nächste Segment Auftreten in der Reihenfolge, nach einem erfolgreichen Aufruf GN.
Das GN Anruf Start durch die Datenbank von Position der durch den vorherigen Aufruf etablierte.
Wenn ein GN Anruf ist unqualifiziert, es Retouren das nächste Segment Auftreten in der Datenbank unabhängig von der Art, in hierarchischer Reihenfolge.
Wenn ein GN Anruf einschließen SSA, dann DL / I Abruft nur Segmente, die die Anforderungen aller spezifiziert SSA zu werden.
CALL 'CBLTDLI' USING DLI-GN PCB-NAME IO-AREA BOOKS-SSADas obige Beispiel zeigt, stellen wir eine GN Anruf Bereitstellung der Ausgangsposition, um die Datensätze sequentiell gelesen. Er holt das erste Vorkommen die BOOKS segment.
Die folgende Tabelle zeigt die relevanten Statuscodes nach einer GU Aufruf:
Statuscodes | Beschreibung |
---|---|
Plätze | Erfolgreicher Anruf |
GE | DL / I konnte nicht finden ein Segment trafen das Kriterien spezifiziert die in der Anruf. |
GA | Ein unqualifizierter GN Anruf bewegt sich nach oben Eine Ebene in der Datenbankhierarchie, um das Segment zu holen. |
GB | Ende der Datenbank erreicht ist und das Segment nicht gefunden. |
GK | Ein unqualifizierter GN Anruf versucht, ein Segment eines bestimmten Typs andere als die gerade abgerufen holen, bleibt aber in der gleichen Hierarchieebene. |
Befehls codes werden verwendet mit Anrufen werden, um ein Segment Auftreten zu holen. Die verschiedenen Befehlscodes verwendet mit Anrufen werden nachstehend erörtert.
Punkte zu beachten:
Wenn ein F-Befehlscode wird spezifiziert in einer Anruf, die Anruf Prozesse das erste Vorkommen des Segments..
F Befehlscodes können verwendet werden, wenn wir der Reihe nach verarbeitet werden sollen, und es kann mit GN Anrufe und GNP-Anrufe verwendet werden. .
Wenn wir einen F-Befehlscode mit GU Aufruf angeben, es tut nicht haben jeder Signifikanz als GU ruft holen das erste Segment Auftreten standardmäßig aktiviert.
Punkte zu beachten:
Wenn ein L-Befehl-Code wird spezifiziert in einer Anruf, die Aufruf Prozesse das letzte Vorkommen des Segments.
L Befehlscodes verwendet werden können, wenn wir wollen, um der Reihe nach zu verarbeiten und es kann mit GN Anrufe und GNP-Anrufe verwendet werden.
Punkte zu beachten:
D-Befehlscode wird verwendet, zu holen um mehr als ein Segment Vorkommen verwendung nur einziger Anruf.
Normalerweise DL / I arbeitet auf der niedrigsten ebene Segment spezifiziert einem SSA, sondern in vielen Fällen wir Daten aus anderen Ebenen ebenso auch wollen. In diesen Fällen können wir die D-Befehlscode zu verwenden..
D Befehlscode macht einfache Wiederherstellung des gesamten Weg der Segmente..
Punkte zu beachten:
C-Befehlscode wird verwendet, zu verketten um Schlüssel .
Verwendung relationalen Operatoren ist ein wenig komplexer, als wir brauchen, um einen Feldnamen, einen relationalen operator und einen Suchwert angeben. Stattdessen können wir eine C-Befehlscode verwenden, um einen verketteten Schlüssel liefern.
Das folgende Beispiel zeigt die Verwendung von C-Befehlscode:
01 LOCATION-SSA. 05 FILLER PIC X(11) VALUE ‘INLOCSEG*C(‘. 05 LIBRARY-SSA PIC X(5). 05 BOOKS-SSA PIC X(4). 05 ENGINEERING-SSA PIC X(6). 05 IT-SSA PIC X(3) 05 FILLER PIC X VALUE ‘)’. CALL 'CBLTDLI' USING DLI-GU PCB-NAME IO-AREA LOCATION-SSA
Punkte zu beachten:
wenn wir Ausgabe eine GU oder GN Aufruf, kann der DL / I stellt seine Prozentsatz auf der untersten Ebene Segment, das abgerufen wird.
Wenn wir einen P-Befehlscode enthalten, dann ist die DL / I stellt seine Prozentsatz auf einer höheren Ebene Segment in der hierarchischen Pfad. .
Punkte zu beachten:
Wenn ein U-Befehlscode wird spezifiziert in dem uneingeschränkten SSA in einer GN Aufforderung, die DL / I schränkt die Suche für das Segment..
U-Befehlscode wird ignoriert, wenn es ist mit einem qualifizierten SSA verwendet wird..
Punkte zu beachten:
V Befehlscode funktioniert ähnlich wie die U-Befehlscode, sondern es begrenzt die Suche eines Segments auf einer bestimmten Ebene und alle Ebenen oben der Hierarchie .
V-Befehlscode wird ignoriert, wenn mit einem qualifizierten SSA verwendet werden..
Punkte zu beachten:
Q-Befehlscode wird verwendet, um in die Warteschlange oder ein Segment für die ausschließliche Verwendung von Ihrem Anwendungsprogramm reservieren.
Q-Befehlscode wird in einer interaktiven Umgebung, in der ein anderes Programm könnte eine Änderung an einem Segment zu machen verwendet.
Ein Programm kann mehrere Positionen in der IMS-Datenbank, die als Mehrfachverarbeitung bekannt ist. Mehrfachverarbeitung kann auf zwei Arten geschehen:
Mehrere PCBs können für eine einzelne Datenbank definiert werden. Wenn es mehrere PCBs, dann ein Anwendungsprogramm kann unterschiedliche Auffassungen . Diese Methode für die Umsetzung mehrere Verarbeitungs ist ineffizient, da der Gemeinkosten durch die zusätzliche PCB auferlegt werden.
Ein Programm kann mehrere Positionen in einer Datenbank zu pflegen mit einer einzigen PCB. Dies wird durch die Beibehaltung einer ausgeprägten Position für jeden hierarchischen Pfad erreicht. Mehrfachpositionierungen an Zugriffssegmente aus zwei oder mehr Typen nacheinander gleichzeitig verwendet.