Using KSAM/XL and KSAM 64 (32650-90886)

224 AppendixA
COBOL Intrinsics
Examples of KSAM File Access
Figure A-6. Random Update with COBOL
Program EXAMP3:
001000 IDENTIFICATION DIVISION,
001100 PROGRAM-ID. EXAMP3.
001200 ENVIRONMENT DIVISION.
001300 INPUT-OUTPUT SECTION.
001400 FILE-CONTROL.
001500 SELECT NEW-DATA ASSIGN TO "NEWDATA".
001600 DATA DIVISION.
001700 FILE SECTION.
001800 FD NEW-DATA
001900 LABEL RECORDS ARE STANDARD.
002000 01 INPUT-REC PIC X(73),
002100 WORKING-STORAGE SECTION,
002200 77 RECSIZE PIC S9(4) COMP VALUE 74.
002300 77 RESULT PIC 9(4) VALUE ZERO.
002400 77 KEY-LOC PIC S9(4) COMP VALUE 3.
002500 01 MASTER-REC.
002600 05 FILLER PIC XX.
002700 05 NAME PIC X(20).
002800 05 PHONE PIC X(8).
002900 05 OTHER-DATA PIC X(44).
003000 01 DATA-REC.
003100 05 NAME PIC X(20).
003200 05 PHONE PIC X (8).
003300 05 OTHER-DATA PIC X(44).
003400 05 TRANSACTION-CODE PIC X.
003500 01 FILETABLE.
003600 02 FILENUMRER PIC S9(4) COMP VALUE o.
003700 O2 FILENAME PIC X(8) VALUE "KSAMFILE".
003800 02 I-O-TYPE PIC S9(4) COMP VALUE 2.
003900 02 A-MoDE PIC S9(4) COMP VALUE 1.
004000 02 PHEV-OP PIC S9(4) COMP VALUE 0.
004100 01 STATUSKEY.
004200 02 STATUS-KEY-1 PIC X.
004300 02 STATUS-KEY-2 PIC X.
004400
004500 PROCEDURE DIVISION.
004600 START.
004700 OPEN INPUT NEW-DATA.
004800 CALL "CKOPEN" USING FILETABLE, STATUSKEY.
004900 IF STATUS-KEY-1 = "9" THEN
005000 CALL "CKERROR" USING STATUSKEY, RESULT
005100 DISPLAY "CKOPEN ERROR NO.", RESULT.
005200 IF STATUS-KEY-1 NOT ="0" THEN
005300 DISPLAY "CKOPEN FAILED"
005400 STOP RUN.
005500 LOOP.
005600 READ NEW-DATA INTO DATA-REC;
005700 AT END GO TO FINISH.
005800 IF TRANSACTION-CODE = "A" THEN GO TO ADD-REC,
005900 IF TRANSACTION-CODE NOT = "D" AND "U" THEN
006000 DISPLAY "ILLEGAL TRANSACTION CODE"