KSDS Sequential Read
Problem Description
Read VSAM KSDS file sequentially.
Expected Output
Processing KSDS records in sequence
Hints
OPEN INPUT, READ with AT END, CLOSE.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. VSAMSQRD.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT VSAM-FILE ASSIGN TO VSAMFILE
ORGANIZATION IS INDEXED
ACCESS MODE IS SEQUENTIAL
RECORD KEY IS VS-KEY
FILE STATUS IS WS-FILE-STATUS.
DATA DIVISION.
FILE SECTION.
FD VSAM-FILE.
01 VS-RECORD.
05 VS-KEY PIC X(10).
05 VS-DATA PIC X(70).
WORKING-STORAGE SECTION.
01 WS-FILE-STATUS PIC XX.
01 WS-EOF PIC 9 VALUE 0.
01 WS-COUNT PIC 9(5) VALUE 0.
PROCEDURE DIVISION.
OPEN INPUT VSAM-FILE.
IF WS-FILE-STATUS NOT = "00"
DISPLAY "OPEN ERROR: " WS-FILE-STATUS
STOP RUN
END-IF.
PERFORM UNTIL WS-EOF = 1
READ VSAM-FILE
AT END MOVE 1 TO WS-EOF
NOT AT END
ADD 1 TO WS-COUNT
DISPLAY "KEY: " VS-KEY " DATA: " VS-DATA
END-READ
END-PERFORM.
CLOSE VSAM-FILE.
DISPLAY "TOTAL RECORDS: " WS-COUNT.
STOP RUN.
Explanation:
ORGANIZATION IS INDEXED for KSDS. ACCESS MODE SEQUENTIAL for sequential read.