Makrotyp: | R bei PARMOD=24 |
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 |
|
|
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) undder 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.