If the FILE STATUS clause is specified in the FILE-CONTROL entry, a value is placed in the specified status key during execution of any request on that file; the value indicates the status of that request. The value is placed in the status key before execution of any EXCEPTION/ERROR declarative or INVALID KEY/AT END phrase associated with the request.
| There are two status key data items. One is for QSAM, SAM, or VSAM files, | and it is described by data-name-1 in the FILE STATUS clause of the | FILE-CONTROL entry. This is a 2-character data item with the first | character known as status key 1 and the second character known as status | key 2. The combinations of possible values and their meanings are shown | in Table 30.
x The other status key data item is for VSAM files only, and it is described x by data-name-8 in the FILE STATUS clause of the FILE-CONTROL entry. For x more information on the VSAM file status key, see "FILE STATUS Clause" in x topic 2.4.13.
x Note: This element may exhibit different behavior when the CMPR2 compiler x option is in effect. For more information, see VS COBOL II Migration x Guide for MVS and CMS or VS COBOL II Migration Guide for VSE.
________________________________________________________________________ | Table 30. Status Key Values and Meanings | |________________________________________________________________________| | | | | | | High-| | Low- | | | Order| | Order| | | Digit| Meaning | Digit| Meaning | | | | | | |______|_____________|______|____________________________________________| | 0 | Successful | 0 | No further information | | | Completion |______|____________________________________________| | | | 2 | The input-output statement was | | | | | successfully executed, but a duplicate key | | | | | was detected. For a READ statement the | | | | | key value for the current key of reference | | | | | was equal to the value of the same key in | | | | | the next record within the current key of | | | | | reference. For a REWRITE or WRITE | | | | | statement, the record just written created | | | | | a duplicate key value for at least one | | | | | alternate record key for which duplicates | | | | | are allowed. | | | |______|____________________________________________| | | | 4 | A READ statement was successfully | | | | | executed, but the length of the record | | | | | being processed did not conform to the | | | | | fixed file attributes for that file. | | | |______|____________________________________________| | | | 5 | An OPEN statement is successfully executed | | | | | but the referenced optional file is not | | | | | present at the time the OPEN statement is | | | | | | executed. If the open mode is I-O or | | | | | | EXTEND, the file has been created. For a | x | | | | VSAM sequential file, if the open mode is | x | | | | I-O or EXTEND, the file has not been | x | | | | created, and file status 0 is returned. | | | |______|____________________________________________| | | | 7 | For a CLOSE statement with the NO REWIND, | | | | | REEL/UNIT, or FOR REMOVAL phrase or for an | | | | | OPEN statement with the NO REWIND phrase, | | | | | the referenced file was on a non-reel/unit | | | | | medium. | |______|_____________|______|____________________________________________| | 1 | At end | 0 | A sequential READ statement was attempted | | | condition | | and no next logical record existed in the | | | | | file because the end of the file had been | | | | | reached, or the first READ was attempted | | | | | on an optional input file that was not | | | | | present. | | | |______|____________________________________________| | | | 4 | A sequential READ statement was attempted | | | | | for a relative file and the number of | | | | | significant digits in the relative record | | | | | number was larger than the size of the | | | | | relative key data item described for the | | | | | file. | |______|_____________|______|____________________________________________| | 2 | Invalid key | 1 | A sequence error exists for a sequentially | | | condition | | accessed indexed file. The prime record | | | | | key value has been changed by the program | | | | | between the successful execution of a READ | | | | | statement and the execution of the next | | | | | REWRITE statement for that file, or the | | | | | ascending requirements for successive | | | | | record key values were violated. | | | |______|____________________________________________| | | | 2 | An attempt was made to write a record that | | | | | would create a duplicate key in a relative | | | | | file; or an attempt was made to write or | | | | | rewrite a record that would create a | | | | | duplicate prime record key or a duplicate | | | | | alternate record key without the | | | | | DUPLICATES phrase in an indexed file. | | | | | This key value applies to an indexed file | | | | | in which the alternate key has been | | | | | declared 'UNIQUE'. | | | |______|____________________________________________| | | | 3 | An attempt was made to randomly access a | | | | | record that does not exist in the file, or | | | | | a START or random READ statement was | | | | | attempted on an optional input file that | | | | | was not present. | | | |______|____________________________________________| | | | 4 | An attempt was made to write beyond the | | | | | externally defined boundaries of a | | | | | relative or indexed file. Or, a | | | | | sequential WRITE statement was attempted | | | | | for a relative file and the number of | | | | | significant digits in the relative record | | | | | number was larger than the size of the | | | | | relative key data item described for the | | | | | file. | |______|_____________|______|____________________________________________| | 3 | Permanent | 0 | No further information | | | error |______|____________________________________________| | | condition | 4 | A permanent error exists because of a | | | | | boundary violation; an attempt was made to | | | | | write beyond the externally-defined | | | | | boundaries of a sequential file. | | | |______|____________________________________________| | | | 5 | An OPEN statement with the INPUT, I-O, or | | | | | EXTEND phrase was attempted on a | | | | | non-optional file that was not present. | | | |______|____________________________________________| | | | 7 | An OPEN statement was attempted on a file | | | | | that would not support the open mode | | | | | specified in the OPEN statement. Possible | | | | | violations are: | | | | | | | | | | 1. The EXTEND or OUTPUT phrase was | | | | | specified but the file would not | | | | | support write operations. | | | | | 2. The I-O phrase was specified but the | | | | | file would not support the input and | | | | | output operations permitted. | | | | | 3. The INPUT phrase was specified but the | | | | | file would not support read | | | | | operations. | | | |______|____________________________________________| | | | 8 | An OPEN statement was attempted on a file | | | | | previously closed with lock. | | | |______|____________________________________________| | | | 9 | The OPEN statement was unsuccessful | | | | | because a conflict was detected between | | | | | the fixed file attributes and the | | | | | attributes specified for that file in the | | | | | program. These attributes include the | | | | | organization of the file (sequential, | | | | | relative, or indexed), the prime record | | | | | key, the alternate record keys, the code | | | | | set, the maximum record size, and the | | | | | record type (fixed or variable). | |______|_____________|______|____________________________________________| | 4 | Logic error | 1 | An OPEN statement was attempted for a file | | | condition | | in the open mode. | | | |______|____________________________________________| | | | 2 | A CLOSE statement was attempted for a file | | | | | not in the open mode. | | | |______|____________________________________________| | | | 3 | For a mass storage file in the sequential | | | | | access mode, the last input-output | | | | | statement executed for the associated file | | | | | prior to the execution of a REWRITE | | | | | statement was not a successfully executed | | | | | READ statement. | | | | | | | | | | For relative and indexed files in the | | | | | sequential access mode, the last | | | | | input-output statement executed for the | | | | | file prior to the execution of a DELETE or | | | | | REWRITE statement was not a successfully | | | | | executed READ statement. | | | |______|____________________________________________| | | | 4 | A boundary violation exists because an | | | | | attempt was made to rewrite a record to a | | | | | file and the record was not the same size | | | | | as the record being replaced, or an | | | | | attempt was made to write or rewrite a | | | | | record that was larger than the largest or | | | | | smaller than the smallest record allowed | | | | | by the RECORD IS VARYING clause of the | | | | | associated file-name. | | | |______|____________________________________________| | | | 6 | A sequential READ statement was attempted | | | | | on a file open in the input or I-O mode | | | | | and no valid next record had been | | | | | established because: | | | | | | | | | | | 1. The preceding START statement was | | | | | | unsuccessful, or | | | | | 2. The preceding READ statement was | | | | | unsuccessful but did not cause an at | | | | | end condition, or | | | | | 3. The preceding READ statement caused an | | | | | at end condition. | | | |______|____________________________________________| | | | 7 | The execution of a READ statement was | | | | | attempted on a file not open in the input | | | | | or I-O mode. | | | |______|____________________________________________| | | | 8 | The execution of a WRITE statement was | | | | | attempted on a file not open in the I-O, | | | | | output, or extend mode. | | | |______|____________________________________________| | | | 9 | The execution of a DELETE or REWRITE | | | | | statement was attempted on a file not open | | | | | in the I-O mode. | |______|_____________|______|____________________________________________| | 9 | Implementor-| 0 | No further information. | | | defined |______|____________________________________________| | | condition | 1 | For VSAM only: Password failure. | | | |______|____________________________________________| | | | 2 | Logic error. | | | |______|____________________________________________| | | | 3 | For VSAM only: Resource not available. | | | |______|____________________________________________| x | | | 4 | For VSAM with CMPR2 compiler-option only: | x | | | | No file position indicator for sequential | x | | | | request. | | | |______|____________________________________________| | | | 5 | For VSAM only: Invalid or incomplete file | | | | | information. | | | |______|____________________________________________| | | | 6 | For VSAM only: No DD statement specified | | | | | for this file. | | | |______|____________________________________________| | | | 7 | For VSAM only: OPEN statement execution | | | | | successful: File integrity verified. | |______|_____________|______|____________________________________________|