Stereotyp 'DLISegment'

Der Stereotyp 'DLISegment' passt einen Datensatzabschnitt (Record) für die Verwendung mit einer hierarchischen Datenbank an.

Jeder Segmenttyp, auf den Sie in einer DL/I-Datenbank zugreifen wollen, muss einen äquivalenten DLISegment-Datensatz in Ihrem Programm aufweisen.

Betrachten Sie beispielsweise eine Datenbank, die Kundeninformationen enthält. Für jeden Kunden gibt es Segmente für den Saldo, den Verlauf und einzelne Standorte. Jeder Standort hat Bestellsegmente, und jede Bestellung hat Artikelsegmente. Die zugehörigen Konzepte am Ende dieses Themas enthalten ein Diagramm und den Code für dieses Beispiel.

Um über ein EGL-Programm auf diese Datenbank zuzugreifen, erstellen Sie Datensätze vom Typ 'DLISegment' für 'Customer' (Kunde), 'Credit' (Saldo), 'History' (Verlauf), 'Location' (Standort), 'Order' (Bestellung) und 'Item' (Artikel).

Die Struktur der Felder im DLISegment-Datensatz muss der Struktur des Segments entsprechen, so wie DL/I es für Ihr Programm darstellt:
  • Definieren Sie die Felder 'keyItem' und 'lengthItem' mit demselben Typ, derselben Länge und derselben Position wie im DL/I-Segment.
  • Wenn das DL/I-Segment ein logisches untergeordnetes Element ist, definieren Sie die DLISegment-Struktur so, dass der verknüpfte Schlüssel des übergeordneten Zielelements und die Schnittmengendaten eingeschlossen werden.
  • Wenn das DL/I-Segment ein verknüpftes Segment in einer logischen Datenbank ist, definieren Sie die DLISegment-Struktur so, dass der verknüpfte Schlüssel, die Schnittmengendaten und das übergeordnete Zielsegment eingeschlossen werden.
  • Wenn das DL/I-Segment im DL/I-Programmspezifikationsblock (PSB) mithilfe der Funktion für Sensitivität auf Feldebene neu definiert wird, definieren Sie die DLISegment-Struktur so, dass sie der PSB-Ansicht des Segments entspricht.
Es folgt ein Beispiel eines DLISegment-Datensatzes:
Record CustomerRecordPart type DLISegment 
{ segmentName="STSCCST", keyItem="customerNo" }
	10 customerNo char(6) { dliFieldName = "STQCCNO" }; //key field
	10 customerName char(25)   { dliFieldName = "STUCCNM" };
	10 customerAddr1 char(25)  { dliFieldName = "STQCCA1" };
	10 customerAddr2 char(25)  { dliFieldName = "STQCCA2" };
	10 customerAddr3 char(25)  { dliFieldName = "STQCCA3" };
end