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- | 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:
|
22 | Doppelter Schlüssel: 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: |
24 | Überschreiten der Bereichsgrenzen: |
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:
|
38 | Es 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:
|
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: |
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:
|
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
|
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]):
|
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. |