HP OpenVMS Systemsask the wizard |
The Question is: Why can't I READ this indexed file? Under Compaq Cobol v 2.7: The program opens an indexed file for input but the READ fails with the following run-time error: %SYSTEM-F-OPCDEC, opcode reserved to Digital fault at PC=000000007C29C9D4, PS=0000001B %TRACE-F-TRACEBACK, symbolic stack dump follows image module routine line rel PC abs PC DEC$COBRTL 0 000000000002C9D4 000000007C29C9D4 DEC$COBRTL 0 00000000000276B0 000000007C2976B0 STATE_TEST STATE STATE 35 0000000000000104 0000000000030104 STATE_TEST 0 0000000000020370 0000000000030370 0 FFFFFFFF802573F4 FFFFFFFF802573F4 The file is OPENed successfully according to the status code. I've tried using the fully qualified file name and it doesn't seem to make a difference. Here is a sample of the code: IDENTIFICATION DIVISION. PROGRAM-ID. STATE. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STATE-FILE ASSIGN TO "STATE.DAT" ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS STATE-KEY FILE STATUS IS STATESTATUS. DATA DIVISION. FILE SECTION. FD STATE-FILE. 01 STATE-RECORD. 02 STATE-KEY PIC X(02). 02 STATE-INDEX PIC 9(02). 02 STATE-NAME PIC X(14). WORKING-STORAGE SECTION. 01 ENDOFFILE PIC X(1). 01 STATESTATUS PIC X(2). PROCEDURE DIVISION. 001-START-HERE. OPEN INPUT STATE-FILE. MOVE "AL" TO STATE-KEY. DISPLAY SPACE LINE 1 COLUMN 1 ERASE TO END OF SCREEN. READ STATE-FILE INVALID KEY DISPLAY "BAD KEY". CLOSE STATE-FILE. STOP RUN. The Answer is : Please first ensure you have the COBRTL V2.7 (or later) kit installed: $ product show history cob* ----------------------------------- ----------- ----------- -------------------- PRODUCT KIT TYPE OPERATION DATE AND TIME ----------------------------------- ----------- ----------- -------------------- DEC AXPVMS COBOL V2.7-1209 Full LP Install 30-APR-2001 07:04:32 DEC AXPVMS COBRTL V2.7-603B Full LP Install 30-APR-2001 07:03:22 ----------------------------------- ----------- ----------- -------------------- Next, please try compiling /CHECK, rebuild, and rerun the program. /CHECK includes some additional run-time verifications between the program description of the indexed file keys and the actual file. Also please use ANALYZE/RMS to verify the structure of the file. If you are still unable to resolve the problem, please contact the Compaq Customer Support Center. The Support Center will require a command procedure that can be used to generate the indexed input file you are using, or a copy of the indexed file. The following example will create the indexed file from within the COBOL program, though the following program was unsuccessful in duplicating the problem you are reporting. Accordingly, the OpenVMS Wizard also suspects the problem might be related to specific data present in your file. The Customer Support Center will also want to know if you have been able to read this file on older versions of OpenVMS, with older versions of COBOL, or with other programming languages on OpenVMS V7.3. -- IDENTIFICATION DIVISION. PROGRAM-ID. STATE. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT STATE-FILE ASSIGN TO "STATE.DAT" ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS STATE-KEY FILE STATUS IS STATESTATUS. DATA DIVISION. FILE SECTION. FD STATE-FILE. 01 STATE-RECORD. 02 STATE-KEY PIC X(02). 02 STATE-INDEX PIC 9(02). 02 STATE-NAME PIC X(14). WORKING-STORAGE SECTION. 01 ENDOFFILE PIC X(1). 01 STATESTATUS PIC X(2). PROCEDURE DIVISION. 001-START-HERE. OPEN OUTPUT STATE-FILE. CLOSE STATE-FILE. OPEN INPUT STATE-FILE. MOVE "AL" TO STATE-KEY. DISPLAY SPACE LINE 1 COLUMN 1 ERASE TO END OF SCREEN. READ STATE-FILE INVALID KEY DISPLAY "BAD KEY". CLOSE STATE-FILE. STOP RUN.
|