Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

Ein-/Ausgabe-Zustand

&pagelevel(5)&pagelevel

Der Ein-/Ausgabe-Zustand ist ein Wert, mit dem in einem COBOL-Programm der Zustand einer Ein-/Ausgabe-Operation abgefragt werden kann. Dazu muss die FILE STATUS-Klausel im FILE-CONTROL-Paragrafen der ENVIRONMENT DIVISION angegeben werden. Der Wert wird dann in ein zwei Zeichen langes Datenfeld übertragen, und zwar

  • während der Ausführung einer CLOSE-, OPEN-, READ-, REWRITE- oder WRITE-Anweisung,

  • vor Ausführung einer jeden damit zusammenhängenden unbedingten Anweisung,

  • vor jeder entsprechenden USE AFTER STANDARD EXCEPTION-Prozedur.

Nachfolgend sind die Werte des Ein-/Ausgabe-Zustands und deren Bedeutung aufgeführt:

Ein-
/Ausgabe-
zustand

Bedeutung


Erfolgreiche Ausführung

00

Die Ein-/Ausgabe-Anweisung wurde erfolgreich ausgeführt. Es ist keine weitere Information bezüglich der Ein-/Ausgabe-Operation verfügbar.

02

Ein Satz wurde über ALTERNATE KEY gelesen, und es existiert bei sequenzi ellem Weiterlesen über denselben Schlüssel noch mindestens ein Nachfolge satz mit identischem Schlüsselwert.

Ein Satz mit ALTERNATE KEY WITH DUPLICATES wurde geschrieben, und es gibt bereits für mindestens einen Alternativschlüssel einen Satz mit identischem Schlüsselwert.

04

Satzlängenkonflikt: Eine READ-Anweisung wurde erfolgreich ausgeführt. Die Länge des gelesenen Datensatzes liegt jedoch nicht in den Grenzen, die durch die Satzbeschreibungen der Datei festgelegt wurden.

05

OPEN-Anweisung auf eine nicht vorhandene OPTIONAL-Datei


Erfolglose Ausführung: Endebedingung

10

Es wurde versucht, eine READ-Anweisung auszuführen. Es war jedoch kein nächster logischer Datensatz vorhanden, da das Dateiende erreicht war.


Erfolglose Ausführung: Schlüsselfehlerbedingung

21

Reihenfolgefehler für eine Datei bei ACCESS MODE IS SEQUENTIAL:

  1. Der Wert des Satzschlüssels wurde zwischen der erfolgreichen Ausführung einer READ-Anweisung und der Ausführung der nachfolgenden REWRITE-Anweisung geändert.

  2. Bei aufeinanderfolgenden WRITE-Anweisungen wurde die aufsteigende Folge von Satzschlüsseln nicht eingehalten.

22

Doppelter Schlüssel:
Es wurde versucht, eine WRITE-Anweisung mit einem Schlüssel auszuführen, für den in der Datei bereits ein Satz vorhanden ist.

Es wurde versucht, einen Satz mit ALTERNATE KEY ohne WITH DUPLICATES-Angabe zu erstellen, obwohl in der Datei bereits ein Alternativschlüssel mit identischem Schlüsselwert vorhanden ist.

23

Datensatz nicht gefunden:
Es wurde versucht, anhand eines Schlüssels mit einer READ-, START-, DELETE- oder REWRITE-Anweisung auf einen Datensatz zuzugreifen, der in der Datei nicht vorhanden ist.

24

Überschreiten der Bereichsgrenzen:
Es wurde versucht, eine WRITE-Anweisung außerhalb der vom System festge legten Bereichsgrenzen einer relativen Datei auszuführen (siehe Handbuch „COBOL2000 Benutzerhandbuch“ [1]).


Erfolglose Ausführung: Permanenter Fehler

30

Es ist keine weitere Information bezüglich der Ein-/Ausgabe-Operation verfüg bar (der DVS-Code liefert weitere Informationen).

35

Es wurde versucht, eine OPEN INPUT, I-O- oder EXTEND-Anweisung für eine nicht optionale Datei auszuführen, die nicht vorhanden war.

37

OPEN-Anweisung auf eine Datei, die wegen folgender Bedingungen nicht eröffnet werden kann:

  1. OPEN OUTPUT/I-O/EXTEND auf eine schreibgeschützte Datei (Passwort, RETENTION-PERIOD, ACCESS=READ im Katalog)

  2. OPEN INPUT auf eine lesegeschützte Datei (Passwort)

38Es wurde versucht, eine OPEN-Anweisung für eine Datei auszuführen, die vor her mit der LOCK-Angabe geschlossen wurde.
39

Die OPEN-Anweisung war aus einem der folgenden Gründe erfolglos:

  1. Im ADD-FILE-LINK-Kommando wurden einer oder mehrere der Operanden ACCESS-METHOD, RECORD-FORMAT bzw. RECORD-SIZE mit Werten angegeben, die von den entsprechenden expliziten oder impliziten Programmangaben abweichen.

  2. Bei einer Eingabedatei trat ein Satzlängenfehler auf (Katalogüberprüfung, falls RECFORM=F).

  3. Die Satzlänge ist größer als die BLKSIZE-Angabe im Katalog einer Eingabedatei.

  4. Für eine Eingabedatei stimmt der Katalogeintrag eines der Operanden FCBTYPE, RECFORM, RECSIZE (falls RECFORM=F), KEYPOS oder KEYLEN nicht mit den entsprechenden expliziten oder impliziten Programmangaben bzw. mit den entsprechenden Angaben im ADD-FILE-LINK-Kommando überein.

  5. Es wurde versucht, eine Datei zu eröffnen, deren Alternativschlüssel nicht mit den im Programm angegebenen Schlüsselwerten der ALTERNATERECORDKEY-Klausel übereinstimmen.


Erfolglose Ausführung: Logischer Fehler

41

Es wurde versucht, eine OPEN-Anweisung für eine Datei auszuführen, die bereits eröffnet ist.

42

Es wurde versucht, eine CLOSE-Anweisung für eine Datei auszuführen, die nicht eröffnet ist.

43

Bei ACCESS MODE IS SEQUENTIAL war die letzte vor Ausführung einer DELETE- oder REWRITE-Anweisung ausgeführte Ein-/Ausgabe-Anweisung keine erfolgreich ausgeführte READ-Anweisung.

44

Überschreiten der Satzlängengrenzen:
Es wurde versucht, eine WRITE- oder REWRITE-Anweisung auszuführen. Die Länge des Datensatzes liegt jedoch nicht in dem für diese Datei zulässigen Bereich.

46

Es wurde versucht, eine sequenzielle READ-Anweisung für eine Datei auszuführen, die sich im Eröffnungsmodus INPUT oder I-O befindet; ein nächster gültiger Datensatz steht aber nicht zur Verfügung. Grund:

  1. Die vorhergehende START-Anweisung war erfolglos, oder

  2. die vorhergehende READ-Anweisung war erfolglos, ohne eine Endebedingung zu verursachen, oder

  3. es wurde versucht, nach bereits erkannter AT END-Bedingung eine READ-Anweisung auszuführen.

47

Es wurde versucht, eine READ- oder START-Anweisung für eine Datei auszu führen, die sich nicht im Eröffnungsmodus INPUT oder I-O befindet.

48

Es wurde versucht, eine WRITE-Anweisung für eine Datei auszuführen, die sich

  1. bei sequenziellem Zugriff nicht im Eröffnungsmodus OUTPUT oder EXTEND,

  2. bei wahlfreiem oder dynamischem Zugriff nicht im Eröffnungsmodus OUTPUT oder I-O befindet.

49

Es wurde versucht, eine DELETE- oder REWRITE-Anweisung für eine Datei auszuführen, die sich nicht im Modus I-O befindet.


Sonstige erfolglose Ausführungen

90

Systemfehler; es ist keine weitere Information über die Ursache vorhanden.

91

Systemfehler; OPEN-Fehler; die eigentliche Ursache ist aus dem DVS-Code ersichtlich (siehe „FILE-STATUS-Klausel“ mit Angabe von datenname-2).

93

Nur bei Simultanverarbeitung (siehe „Simultanverarbeitung“ im Handbuch „COBOL2000 Benutzerhandbuch“ [1]): Die Ein-/Ausgabe-Anweisung konnte nicht erfolgreich durchgeführt werden, weil ein anderer Prozess auf dieselbe Datei zugreift und die Zugriffe nicht vereinbar sind.

94

Nur bei Simultanverarbeitung (siehe „Simultanverarbeitung“ im Handbuch „COBOL2000 Benutzerhandbuch“ [1]):

  1. Die Aufruffolge READ - REWRITE/DELETE wurde nicht eingehalten.

  2. Die Satzlänge ist größer als die Blocklänge.

95

Unverträglichkeit zwischen den Angaben im BLOCK-CONTROL-INFO- oder BUFFER-LENGTH-Operanden des ADD-FILE-LINK-Kommandos und dem Dateiformat, der Blockgröße oder dem Format des verwendeten Datenträgers

96

READ PREVIOUS wird nicht unterstützt für ein Modul, der mit COBRUN ENABLE-UFS-ACCESS=YES übersetzt wurde.