Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

@SAVE - Schreiben als ISAM-Datei

&pagelevel(3)&pagelevel

Mit der Anweisung @SAVE wird der Inhalt der aktuellen Arbeitsdatei ganz oder teilweise als ISAM-Datei auf Platte geschrieben.

Operation

Operanden

F-Modus, L-Modus

@SAVE

[file] [(ver)] [lines[,...] ] [:cols[,...]:]

[ {UPDATE | RENUMBER [line [(inc)] ] ] [OVERWRITE] } ] 

file

Name der ISAM-Datei, die geschrieben werden soll. Der Name muss dem
SDF-Datentyp <filename 1..54> entsprechen oder die spezielle Angabe
'/' sein.

Fehlt der Operand file, so wird, falls vorhanden, der explizite lokale
@FILE-Eintrag, danach der globale @FILE-Eintrag oder als letztes der
implizite lokale @FILE-Eintrag (z.B. aus der @GET-Anweisung) als Dateiname
herangezogen (siehe auch @FILE-Anweisung). Ist weder ein lokaler
noch globaler @FILE-Eintrag vorhanden, wird die Anweisung @SAVE mit
der Fehlermeldung EDT5484 abgewiesen.

Ist die angegebene Datei nicht wie erforderlich zugreifbar, wird die Anweisung
mit einer entsprechenden Fehlermeldung abgewiesen.

Wenn der Dateikettungsname EDTISAM einer Datei zugeordnet ist, genügt
die Angabe '/', um diese Datei zu schreiben (siehe Kapitel „Dateibearbeitung“).

ver

Versionsnummer der zu überschreibenden Datei. Wird für eine existierende
Datei die falsche Versionsnummer angegeben, wird die Anweisung mit der
Meldung EDT4985 abgewiesen. Bei einer noch nicht existierenden Datei
wird die Angabe ignoriert und grundsätzlich die Version 001 geschrieben.

lines

Einer oder mehrere Zeilenbereiche, die in die ISAM-Datei geschrieben
werden sollen. Werden dabei Zeilen mehrfach angegeben, so werden sie
auch mehrfach geschrieben.

Wird lines nicht angegeben, wird die gesamte Datei geschrieben.

cols

Einer oder mehrere Spaltenbereiche, durch die der zu schreibende Bereich
jedes Satzes festgelegt wird. Wiederholungen und Überlappungen der
Bereiche sind erlaubt. Die Spaltenangaben beziehen sich auf die Zeichen in
der aktuellen Arbeitsdatei. Werden Spaltenwerte angegeben, die die Länge
eines Arbeitsdateisatzes überschreiten, so werden dafür Leerzeichen in die
Datei geschrieben.

Wird kein Spaltenbereich angegeben, werden die Zeilen in voller Länge
geschrieben.

UPDATE

Die Angabe von UPDATE bewirkt, dass die abzuspeichernden Zeilen in die
ISAM-Datei eingefügt werden. Der EDT überschreibt in der ISAM-Datei nur
die Zeilen, deren Nummern auch in der aktuellen Arbeitsdatei existieren,
und die im Bereich lines liegen. Die restlichen Zeilen der ISAM-Datei
bleiben erhalten.

Dieser Operand wird ignoriert, wenn keine ISAM-Datei mit dem angegebenen
Namen existiert.

RENUMBER

Für die abzuspeichernden Zeilen werden neue ISAM-Satzschlüssel gebildet.
Die Zeilennummerierung in der Arbeitsdatei bleibt unverändert.
Werden Zeilen mehrfach ausgegeben (durch Überlappungen in den
Bereichsangaben), werden diese auch mehrfach (mit unterschiedlichen
Satzschlüsseln) in die Datei aufgenommen.

Wird RENUMBER nicht angegeben, entstehen die ISAM-Schlüssel aus den
Zeilennummern der abzuspeichernden Zeilen. Soll die Datei später mit
@GET ... NORESEQ eingelesen werden und dabei die gleiche
Zeilennummerierung wie zum Zeitpunkt des Abspeicherns aufweisen, darf
RENUMBER nicht angegeben werden.

Wird bei der Neunummerierung die maximal mögliche Zeilennummer
(entspr. der Schlüssellänge) überschritten, wird die Anweisung mit der
Fehlermeldung EDT5252 abgebrochen.

line

Startnummer für die neu zu bildenden ISAM-Satzschlüssel. Wird line nicht
angegeben, so wird 1 angenommen.

inc

Schrittweite der neu zu bildenden ISAM-Satzschlüssel. Wird inc nicht
angegeben, wird die implizit durch line gegebene Schrittweite verwendet
(siehe Abschnitt „Implizite Schrittweitenvergabe“).

OVERWRITE

Eine vorhandene Datei gleichen Namens wird ohne Rückfrage überschrieben. Existiert die angegebene Datei noch nicht, ist OVERWRITE wirkungslos.

 

Wird weder UPDATE noch OVERWRITE angegeben und existiert bereits eine Datei mit dem gleichen Namen, reagiert der EDT im Dialogbetrieb mit der Frage:

%

%

EDT0903 FILE 'file' IS IN THE CATALOG, FCBTYPE = fcbtyp

EDT0296 OVERWRITE FILE? REPLY (Y=YES; N=NO)?

Wird die Meldung mit Y beantwortet, wird die bestehende Datei als ISAM-Datei mit dem Inhalt der aktuellen Arbeitsdatei überschrieben. Wird dagegen die Meldung mit N beantwortet, wird die Datei nicht geschrieben und die Meldung EDT0293 ausgegeben.
Im Stapelbetrieb wird die Datei immer überschrieben.

Beim Überschreiben einer existierenden Datei durch @SAVE ohne den Operanden UPDATE ändern sich möglicherweise Datei-Typ und Datei-Attribute. Die Datei wird als ISAM-Datei mit Standardattributen (z.B. variable Satzlänge) geschrieben, sofern nicht vorher ein entsprechendes /SET-FILE-LINK-Kommando mit dem Dateikettungsnamen EDTISAM und den abweichenden Attributen gegeben worden ist (siehe Kapitel „Dateibearbeitung“). Dateien vom Typ PAM oder BTAM können nicht überschrieben werden.

Die Datei wird nur während des Schreibvorgangs temporär geöffnet.

Der Zeichensatz, mit dem das Schreiben erfolgt, hängt davon ab, ob die Datei überschrieben, neu angelegt oder erweitert wird (siehe Operand UPDATE).

Wird die Datei überschrieben oder neu angelegt, werden die Daten im Zeichensatz der Arbeitsdatei geschrieben und für die Datei wird dieser Zeichensatz im Katalog eingetragen.

Wird die Datei erweitert, werden die Daten vom Zeichensatz der Arbeitsdatei in den Zeichensatz umcodiert, der im Katalogeintrag der Datei spezifiziert ist.
Ist im Katalog der Datei *NONE eingetragen, wird EDF03IRV angenommen (siehe auch Abschnitt „Zeichensätze“). Enthält die Arbeitsdatei Zeichen, die im Zeichensatz der zu schreibenden Datei ungültig sind, werden diese durch ein Ersatzzeichen ersetzt, sofern ein solches spezifiziert ist (siehe @PAR SUBSTITUTION-CHARACTER), andernfalls wird die Datei nicht geschrieben und die Fehlermeldung EDT5453 ausgegeben.
Die gilt nicht für ungültige Zeichen außerhalb des zu schreibenden Zeilen- oder Spaltenbereichs. Diese werden ignoriert.

Enthält die Arbeitsdatei Zeilen, die für die zu schreibende Datei zu lang sind (z.B. bei fester Satzlänge der Datei) oder entstehen durch die Konvertierung solche Sätze (bei Unicode-Zeichensätzen möglich), dann wird der Schreibvorgang mit der Meldung EDT5444 abgebrochen.

Wird die Anweisung mit [K2] unterbrochen und der EDT-Lauf mit /INFORM-PROGRAM fortgesetzt, so wird die Bearbeitung der Anweisung abgebrochen und die Meldung EDT5501 ausgegeben.

Hinweis

Wird file angegeben, kann @SAVE im F-Modus aus Kompatibilitätsgründen auch weiterhin mit S abgekürzt werden.