Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

PUTX - Satz ersetzen

ISAM:

Makrotyp:

R bei PARMOD=24
O bei PARMOD=31

SAM:

Makrotyp:

R bei PARMOD=24
R bei PARMOD=31

SAM:

Nur für Plattendateien, die im Locate-Mode verarbeitet werden und mit OPEN UPDATE eröffnet wurden: mit dem PUTX-Makroaufruf wird ein aktualisierter Satz in den Puffer zurückgeschrieben. Der Satz muss zuvor mit GET-Makroaufruf (bei ISAM auch GETR, GETKY oder GETFL) bereitgestellt worden sein; bei der Aktualisierung darf die Satzlänge nicht verändert werden.

Im Locate-Mode wird durch einen PUTX-Makroaufruf der Satz in den Programmpuffer gebracht und ein Kennzeichen gesetzt, dass der Pufferinhalt verändert wurde. Erst bei dem nächsten Makroaufruf, der für diese Datei/diesen FCB einen SVC auslöst, wird der Pufferinhalt zurückgeschrieben (z.B. beim nächsten GET).

ISAM:

Der PUTX-Makroaufruf überschreibt einen Satz, der zuvor mit einem GET-, GETR-, GETKY oder GETFL-Makroaufruf gelesen wurde. Bei GETFL muss bei SHARUPD=YES der Operand LOCK gewählt werden.

Der Satzschlüssel darf weder im Move-Mode noch im Locate-Mode verändert werden; im Locate-Mode darf auch die Satzlänge nicht verändert werden.

Zwischen der Leseoperation mit GET und der Schreiboperation mit PUTX darf – außer OSTAT – kein anderer ISAM-Aktionsmakro für diese Datei ausgeführt werden. Bei Shared-Update-Verarbeitung darf die Sperre, die mit dem Leseaufruf explizit oder implizit mit dem Operanden LOCK gesetzt wurde, nicht aufgehoben werden; d.h. auch für eine andere Datei/einen anderen FCB dürfen nur Aktionsmakros ausgeführt werden, die keine neue Sperre setzen, z.B. Leseaufruf mit NOLOCK.

K-ISAM:

Wird für einen Satz, der im Bereich von Sätzen gleicher Schlüssel liegt, im Move-Mode ein PUTX ausgegeben, ist es bei K-ISAM in Verbindung mit SHARUPD=YES unbestimmt, auf welchen Satz mit gleichem Schlüssel nach dem PUTX positioniert wird.

Zwischen Lese- und Schreiboperation darf der Satzschlüssel nicht geändert werden. Wird er dennoch verändert, ist die Auswirkung abhängig davon, ob die Datei im Übertragungs- oder im Locate-Mode verarbeitet wird:

In beiden Fällen wird der EXLST-Ausgang USERERR genommen.

Werden im Locate-Mode Steuerinformationen überschrieben, kann dies bei der nachfolgenden Verarbeitung zu unvorhergesehenen Ergebnissen führen. Wenn der Datenblock von ISAM anschließend nicht mehr verarbeitet werden kann, geht die Steuerung an den EXLST-Ausgang USERERR. 

Format

Operation

Operanden

PUTX

fcbadr / (1)

[,PARMOD = 24 / 31]

[,area / (0)]

Operandenbeschreibung

area

Adresse des Satzes, der geschrieben werden soll

(0)
Die Adresse des Satzes steht im Register 0.

fcbadr

Adresse des FCB der zu verarbeitenden Datei.

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

PARMOD

Gibt den Generierungsmodus an.

Voreinstellung:

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

= 24
Der Makroaufruf wird mit der Expansion für die 24-Bit-Schnittstelle aufgelöst. Es wird ein Objekt erzeugt, das nur im 16-MB-Adressraum ablauffähig ist (nur im 24-Bit-Adressierungsmodus).

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

Hinweise zur Programmierung

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

  2. Nur für SAM:
    Die PUTX-Verarbeitung „merkt“ sich im TU-FCB, dass im aktuellen Puffer ein Satz aktualisiert worden ist. Wenn beim nächsten GET (RELSE, SETL) dieses Bit gesetzt ist, dann erst wird der ganze logische Block auf Platte geschrieben. Der PUTX setzt nie einen SVC ab.