KSDS Random Read
Problem Description
Read VSAM KSDS randomly by key.
Expected Output
Direct access to KSDS record
Hints
ACCESS MODE RANDOM, move value to key, then READ.
Solution
IDENTIFICATION DIVISION.
PROGRAM-ID. VSAMRAND.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT VSAM-FILE ASSIGN TO VSAMFILE
ORGANIZATION IS INDEXED
ACCESS MODE IS RANDOM
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-NAME PIC X(30).
05 VS-BALANCE PIC S9(7)V99.
WORKING-STORAGE SECTION.
01 WS-FILE-STATUS PIC XX.
01 WS-SEARCH-KEY PIC X(10).
PROCEDURE DIVISION.
OPEN INPUT VSAM-FILE.
DISPLAY "ENTER ACCOUNT KEY: ".
ACCEPT WS-SEARCH-KEY.
MOVE WS-SEARCH-KEY TO VS-KEY.
READ VSAM-FILE
INVALID KEY
DISPLAY "RECORD NOT FOUND"
NOT INVALID KEY
DISPLAY "NAME: " VS-NAME
DISPLAY "BALANCE: " VS-BALANCE
END-READ.
CLOSE VSAM-FILE.
STOP RUN.
Explanation:
ACCESS MODE RANDOM for direct reads. INVALID KEY handles not-found condition.