Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

OPEN-Anweisung

&pagelevel(4)&pagelevel

Funktion

Die OPEN-Anweisung eröffnet Dateien für die Verarbeitung und für sequenziell organi sierte Dateien führt sie noch die Prüfung und Ausgabe von Kennsätzen durch.

Format 1 für sequenzielle Dateiorganisation


OPEN {  INPUT {dateiname-1 [ REVERSED | WITH NO REWIND]}...

  | OUTPUT {dateiname-1 [WITH NO REWIND]}...

  | I-O {dateiname-1}...

  | EXTEND {dateiname-1}...

 }... 

[END-OPEN]


Syntaxregeln

  1. Für Mehrdateispulen darf die Angabe EXTEND nicht gemacht werden (siehe auch „I-O-CONTROL-Paragraf").

  2. Die EXTEND-Angabe darf nur für Dateien verwendet werden, für die keine LINAGE-Klausel angegeben wurde.

  3. Ein Dateiname darf in einer OPEN-Anweisung nicht mehrmals auftreten.

  4. Die Angabe I-O ist nur für Plattenspeicherdateien erlaubt.

  5. Die Organisation oder Zugriffsart der in einer OPEN-Anweisung aufgeführten Dateien kann unterschiedlich sein.

  6. Bei zeilensequenziellen Dateien sind als Eröffnungsarten nur OPEN INPUT und OPEN OUTPUT ohne die Angaben REVERSED und NO REWIND zulässig.

Format 2 für relative und indizierte Dateiorganisation


OPEN {  INPUT {dateiname-1}...

  | OUTPUT {dateiname-1}...

  | I-O {dateiname-1}...

  | EXTEND {dateiname-1}...

 }...

[END-OPEN]


Syntaxregeln

  1. Der gleiche Dateiname darf in einer OPEN-Anweisung nicht mehrmals auftreten.

  2. Die Organisation oder Zugriffsart der in einer OPEN-Anweisung aufgeführten Dateien kann unterschiedlich sein.

  3. Die EXTEND-Angabe darf nur für Dateien mit sequenziellem Zugriff verwendet werden.

Allgemeine Regeln

Für sequenzielle, relative und indizierte Dateiorganisation:

  1. Nach erfolgreicher Ausführung einer OPEN-Anweisung ist die durch dateiname-1 angegebene Datei verfügbar und befindet sich in eröffnetem Zustand.

  2. Nach erfolgreicher Ausführung einer OPEN-Anweisung steht der zugehörige Satzbereich dem Programm zur Verfügung. Für eine externe Datei existiert nur ein Satzbereich, der allen Programmen, die diese Datei beschreiben, zur Verfügung steht.

  3. Vor der ersten erfolgreichen Durchführung einer OPEN-Anweisung für eine Datei darf (außer einer SORT- oder MERGE-Anweisung mit der USING- oder GIVING-Angabe) keine Anweisung ausgeführt werden, die explizit oder implizit auf die Datei Bezug nimmt.

  4. INPUT bedeutet, dass die Datei als Eingabedatei verarbeitet werden soll (Eingabemodus).

  5. OUTPUT bedeutet, dass die Datei als Ausgabedatei verarbeitet werden soll (Ausgabemodus).

  6. I-O bedeutet, dass Ein- und Ausgabeoperationen (d.h. Lese- und Aktualisierungsoperationen) auf die Datei angewendet werden sollen.
    Da diese Angabe die Existenz der Datei voraussetzt, kann sie nicht verwendet werden, falls die Datei neu eingerichtet werden soll (Aktualisierungsmodus).

  7. Die Angabe EXTEND bewirkt eine Positionierung der Datei unmittelbar hinter den letzten logischen Datensatz der Datei. Bei sequenziell organisierten Dateien ist dies der letzte in die Datei geschriebene Satz, bei relativer Organisation der Satz mit dem größten Relativ-Schlüssel, bei indizierter Dateiorganisation der Satz mit dem höchsten Wert des Primär-Schlüssels. Durch nachfolgende WRITE-Anweisungen für diese Datei werden Datensätze in gleicher Weise an die Datei angefügt, als wäre sie mit der Angabe OUTPUT eröffnet worden (Erweiterungsmodus).

  8. Alle Angaben INPUT, OUTPUT, I-O oder EXTEND sind bei verschiedenen OPEN-Anweisungen in demselben Programm für eine Datei möglich. Bevor eine weitere OPEN-Anweisung nach der logisch ersten für dieselbe Datei in einem Programm durchlaufen werden kann, muss eine CLOSE-Anweisung durchlaufen worden sein. Dabei darf REEL/UNIT oder LOCK in der CLOSE-Anweisung nicht angegeben werden.

  9. Die minimalen und maximalen Satzlängen einer Datei werden bei deren Erzeugung festgelegt und dürfen nachfolgend nicht geändert werden.

  10. Ist eine optionale Datei nicht verfügbar, bewirkt die erfolgreiche Ausführung einer OPEN-Anweisung mit I-O- oder EXTEND-Angabe, dass die Datei angelegt wird.

  11. Nach Ausführung einer OPEN-Anweisung wird der Inhalt des in der FILE STATUS-Klausel angegebenen Datenfeldes (falls eine solche Klausel vorhanden war) aktualisiert (siehe auch „FILE STATUS-Klausel").

  12. Sind mehrere Dateinamen angegeben, so ist die Wirkung die gleiche, wie wenn für jeden Dateinamen eine eigene OPEN-Anweisung gegeben worden wäre.

  13. Ist eine mit OPEN INPUT eröffnete optionale Datei nicht vorhanden, dann wird der Ein-/Ausgabestatus auf den entsprechenden Wert gesetzt.

  14. Werden Dateien mit INPUT oder I-O geöffnet, so wird wie folgt verfahren:

    • Bei relativen und sequenziellen Dateien wird der Dateipositionsindikator auf den ersten Datensatz gesetzt,

    • Bei indizierten Dateien wird der Dateipositionsindikator auf den kleinsten möglichen Wert für den primären Satzschlüssel gesetzt.

    Für sequenziell organisierte Dateien gilt noch:

  15. REVERSED zeigt an, dass die Datensätze einer Datei in umgekehrter Reihenfolge eingelesen werden sollen, d.h. beginnend beim letzten Datensatz der Datei.

    Anmerkung:
    Für eine Datei mit nicht standardisierten Kennsätzen sollte die Angabe REVERSED nicht verwendet werden, außer wenn auf den letzten nicht standardisierten Kennsatz eine Bandabschnittsmarke folgt. In allen anderen Fällen liest das System die Kennsätze in gleicher Weise wie Datensätze.

  16. NO REWIND kann für eine Banddatei oder für eine Plattenspeicherdatei angegeben werden, die mit OUTPUT eröffnet wurde. Die für Band- und Plattenspeicherdateien durchgeführten Maßnahmen sind im Folgenden aufgeführt:

    Banddateien

    NO REWIND bedeutet, dass die Magnetbandspule nicht zurückgespult werden soll, wenn die Datei eröffnet wird.

    Plattenspeicherdateien

    NO REWIND bedeutet, dass in der Datei bereits vorhandene Datensätze nicht überschrieben werden sollen. NO REWIND ist nur aus Kompatibilitätsgründen vorhanden. OPEN OUTPUT WITH NO REWIND hat die gleiche Funktion wie OPEN EXTEND.

  17. Falls das Speichermedium, auf dem sich die Datei befindet, ein Rückspulen zulässt, gelten die folgenden Regeln:

    1. Falls die Angaben REVERSED, EXTEND oder NO REWIND fehlen, wird die Datei bei Ausführung der OPEN-Anweisung auf Dateianfang positioniert.

    2. Falls NO REWIND angegeben wurde, wird die Datei bei Ausführung der OPEN-Anweisung nicht neu positioniert; vielmehr wird erwartet, dass die Datei bereits auf den Dateianfang positioniert ist.

    3. Falls REVERSED angegeben wurde, werden die Datensätze der Datei in umgekehrter Reihenfolge, d.h. beginnend mit dem letzten Datensatz der Datei, zur Verfügung gestellt.

  18. Bei Ausführung der OPEN-Anweisung werden Kennsatzbehandlungsroutinen durchlaufen, außer wenn LABEL RECORDS ARE OMITTED in der Dateierklärung angegeben ist.

    Für die OPEN-Anweisung mit INPUT-Angabe werden folgende Schritte durchlaufen:

    1. Standarddateikennsätze, falls vorhanden, werden überprüft.

    2. Falls Benutzerkennsätze oder nicht standardisierte Kennsätze vorhanden sind und eine dafür zuständige USE-Prozedur existiert, wird diese ausgeführt.

    3. Die Datei wird danach so positioniert, dass der erste Datensatz gelesen werden kann.

    Für die OPEN-Anweisung mit OUTPUT-Angabe werden folgende Schritte durchlaufen:

    1. Falls Standardkennsätze für die Datei vereinbart sind, werden sie erzeugt und geschrieben.

    2. Falls eine USE-Prozedur definiert ist, wird diese ausgeführt und Benutzerkennsätze oder nicht standardisierte Kennsätze geschrieben.

    3. Der Satzbereich wird dem Programm zur Aufnahme von Daten zur Verfügung gestellt.

    Für die OPEN-Anweisung mit I-O-Angabe werden folgende Schritte durchlaufen:

    1. Falls Standardkennsätze vorhanden sind, werden diese überprüft.

    2. Falls Benutzerkennsätze vorhanden sind und eine dafür zuständige USE-Prozedur existiert, wird diese ausgeführt.

    3. Die Datei wird zum Lesen oder Ersetzen von Daten positioniert.

    Für die OPEN-Anweisung mit EXTEND-Angabe und bei Vorhandensein der Klausel LABEL RECORDS STANDARD/datenname besteht die Ausführung der OPEN-Anweisung aus folgenden Schritten:

    1. Die Dateianfangskennsätze werden nur im Falle einer Einspulen- oder Eindatenträgerdatei verarbeitet.

    2. Die Spulen-/Datenträgeranfangskennsätze auf der/dem letzten existierenden Spule/Datenträger werden verarbeitet wie im Falle der OPEN-Anweisung mit INPUT-Angabe.

    3. Die vorhandenen Dateiendekennsätze werden wie im Falle der OPEN-Anweisung mit INPUT-Angabe verarbeitet. Diese Kennsätze werden dann gelöscht.

    4. Die weitere Verarbeitung geht dann in gleicher Weise vonstatten wie bei der OPEN-Anweisung mit OUTPUT-Angabe.

Übersicht über die für einen OPEN-Modus zulässigen Anweisungen.

ACCESS-Klausel

Anweisung

Eröffnungsmodus

INPUT

OUTPUT

I-O

EXTEND

SEQUENTIAL

READ

R,I,S,L


R,I,S


WRITE


R,I,S,L


R,I,S

REWRITE



R,I,S


START

R,I


R,I


DELETE



R,I


RANDOM

READ

R,I


R,I


WRITE


R,I

R,I


REWRITE



R,I


START





DELETE



R,I


DYNAMIC

READ

R,I


R,I


WRITE


R,I

R,I


REWRITE



R,I


START

R,I


R,I


DELETE



R,I


Tabelle 30: Zulässige Ein-/Ausgabe-Anweisungen für jeden OPEN-Modus


Zulässige Angaben sind durch folgende Einträge gekennzeichnet:

S

für sequenzielle Dateiorganisation

L

für zeilensequenzielle Dateiorganisation

R

für relative Dateiorganisation

I

für indizierte Dateiorganisation.