Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

GETR - Sequenziell „rückwärts" lesen

Makrotyp:

R bei PARMOD=24
0 bei PARMOD=31

Der GETR-Makroaufruf liest den nächsten Satz der Datei in Richtung Dateianfang; die Datei wird rückwärts gelesen.

Wird ein Satz angefordert, der außerhalb der Datei liegt, wird dem Anwender über EOFADDR (siehe Makro EXLST, Operand EOFADDR, "EXLST - Exit-Adressenliste anlegen") die Steuerung übertragen.

Das Programm kann jederzeit von GET auf GETR umschalten und umgekehrt. Vor dem Umschalten muss die Datei nicht auf Dateianfang oder -ende positioniert werden.

Folgt auf einen GET-Makroaufruf, der einen Satz mit dem Primär- bzw. Sekundärschlüsselwert Kn bereitgestellt hat, ein GETR-Aufruf, der sich ebenfalls auf den Primär- bzw. den gleichen Sekundärschlüssel bezieht, so liefert dieser GETR-Aufruf den Satz mit dem nächstniedrigeren Primär- bzw. Sekundärschlüsselwert Kn-1 (Kn-1 < Kn).

Enthält eine Datei Sätze mit gleichen Primärschlüsselwerten, so werden bei GETR die Sätze in der umgekehrten Reihenfolge geliefert, in der sie in die Datei eingefügt wurden. D.h. als ersten Satz einer Gruppe von Sätzen mit gleichem Schlüssel erhält man den Satz, der als Letzter in die Datei eingefügt wurde.

Wird die Datei über einen Sekundärschlüssel gelesen und enthält sie Datensätze mit gleichen Werten für diesen Sekundärschlüssel, so stellt GETR diese Sätze in der umgekehrten Reihenfolge bereit, in der die Sekundärschlüsselwerte entstanden sind.

Folgt ein GETR-Makroaufruf auf einen SETL KEY, so wird der Satz zur Verfügung gestellt, auf den mit SETL KEY positioniert wurde.

Format

Operation

Operanden

GETR

fcbadr / (1)

  [,area / (0)]

  [,LOCK / NOLOCK]

[,AIX = NO /

        YES,KEYNAME = name /

        YES,KEYNMAD = adr]

[,PARMOD = 24 / 31]

Operandenbeschreibung

fcbadr

Adresse des FCB für die zu verarbeitende Datei.
Wenn die Datei über einen Sekundärschlüssel gelesen werden soll, muss dieser FCB in seiner 31-Bit-Schnittstelle vorliegen.

(1)
Die FCB-Adresse steht im Register 1.

area

Adresse des Feldes, in das der Satz gebracht werden soll; im Ortungsbetrieb wird „area“ ignoriert.

(0)
Die Adresse des Feldes, in das der Satz gebracht werden soll, steht im Register 0.

LOCK

Die Satz- oder Datenblocksperre soll nach Ausführung des Makroaufrufs erhalten bleiben (explizite Sperre).

NOLOCK

Es wird keine explizite Sperre gesetzt.

AIX

Gibt an, ob der Satz über seinen Primär- oder einen Sekundärschlüssel bereitgestellt werden soll.

= NO
Der Satz wird über seinen Primärschlüssel bereitgestellt (Voreinstellung).

= YES
Kann nur angegeben werden, wenn

      • die 31-Bit-Schnittstelle des Makros generiert wird
        (über den Operanden PARMOD=31 oder den Makroaufruf GPARMOD 31) und

      • der Makro sich auf einen 31-Bit-FCB bezieht.

Der Satz wird über den im Operanden KEYNAME oder KEYNMAD vereinbarten Sekundärschlüssel bereitgestellt.

KEYNAME = name

Gibt den Namen des Sekundärschlüssels an, über den der Satz gelesen werden soll. name muss der Name eines für die aktuelle Datei vereinbarten Sekundärschlüssels sein. Die Namen aller für eine Datei definierten Sekundärschlüssel kann mit dem Makro SHOWAIX oder dem Kommando SHOW-INDEX-ATTRIBUTES ermittelt werden.

KEYNMAD = adr

Gibt die symbolische Adresse (den Namen) eines Feldes an, in dem der Anwender den Namen des Sekundärschlüssels hinterlegt hat, über den der Satz gelesen werden soll. Das Feld mit der symbolischen Adresse adr muss zum Zeitpunkt der Makroausführung den Namen eines für die aktuelle Datei vereinbarten Sekundärschlüssels enthalten.

PARMOD

Gibt den Generierungsmodus an.

Voreinstellung:

der durch den Assembler oder den GPARMOD-Makroaufruf im Programm eingestellte Wert

= 24
Es wird ein Objekt erzeugt, das nur im 16-MB-Adressraum ablauffähig ist
(nur 24-Bit-Adressierung).

= 31
Es wird ein Objekt erzeugt, das im 2-GB-Adressraum ablauffähig ist
(24-Bit- oder 31-Bit-Adressierung).

Hinweis zur Programmierung

Der GETR-Makroaufruf zerstört die Register 0, 1, 14 und 15.