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-, DELETE-, OPEN-, READ-, REWRITE-, START- 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. |
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. Erfolgreicher OPEN INPUT/I-O/EXTEND auf eine Datei mit OPTIONAL-Angabe in der SELECT-Klausel, die zum Zeitpunkt der Ausführung der OPEN-Anweisung nicht vorhanden war |
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. Es wurde zum ersten Mal versucht, eine READ-Anweisung für eine nicht vorhandene Datei mit OPTIONAL-Angabe auszuführen. |
14 | Es wurde versucht, eine READ-Anweisung auszuführen. Das durch RELATIVE KEY beschriebene Datenfeld ist aber zu klein, um die relative Satznummer aufzunehmen (sequenzielles READ). |
Erfolglose Ausführung: Schlüsselfehlerbedingung | |
22 | Doppelter Schlüssel: |
23 | Datensatz nicht gefunden oder Satzschlüssel Null: |
24 | Überschreiten der Bereichsgrenzen: |
Erfolglose Ausführung: Permanenter Fehler | |
30 | Es ist keine weitere Information bezüglich der Ein-/Ausgabe-Operation verfügbar (der DVS-Code liefert weitere Informationen). |
35 | Es wurde versucht, eine OPEN-Anweisung mit INPUT-/I-O-/EXTEND-Angabe für eine nicht vorhandene Datei auszuführen. |
37 | OPEN-Anweisung auf eine Datei, die auf folgende Weise nicht eröffnet werden kann:
|
38 | Es wurde versucht, eine OPEN-Anweisung für eine Datei auszuführen, die vorher 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: |
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-Anweisung für eine Datei auszufü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 |
93 | Nur bei Simultanverarbeitung (siehe „Simultanverarbeitung“ im Handbuch „COBOL2000 Benutzerhandbuch“ [1]): |
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, oder die Datei soll mit der DVS-Zugriffsmethode UPAM bearbeitet werden. |