Cobol Indexed File
What are Indexed Files?
- The indexed files are those files in which the organization is always indexed, and the access is done using key values.
- These files use alphanumeric characters as the key, and the key must be uniquely defined.
- The records in indexed files can be accessed much faster, and in any order irrespective of position using the key.
- The access mode to access any record can be sequential as well as random.
Understanding Index file handling in COBOL
SYNTAX =>
FORMAT 1)
SELECT Logical - fl ASSIGNED TO physical - fl ORGANIZATION IS INDEXED ACCESS MODE IS SEQUENTIAL RECORD KEY IS I - KEY ALTERNATIVE KEY IS IA – KEY
FORMAT 2)
SELECT Logical - fl ASSIGNED TO physical - fl ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS I - KEY ALTERNATIVE KEY IS IA – KEY
FORMAT 3)
SELECT Logical - fl ASSIGNED TO physical - fl ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS R - KEY R – KEY must be defined in FD clause in the FILE SECTION.
Sample program -1
This is a demo program to learn and understand the concept of indexed file handling and how to assign values from a different subprogram.
IDENTIFICATION DIVISION. PROGRAM-ID. INDEXEDFILE. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT INFL ASSIGN TO INFLDD ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS EMP-ID FILE STATUS FS-INFL. DATA DIVISION. FILE SECTION. FD INFL. 01 INFL-REC. 05 EMP-ID PIC X(05). 05 FILLER PIC X(01). 05 EMP-NAME PIC X(19). 05 REM-BYTE PIC X(55). WORKING-STORAGE SECTION. 01 FS-INFL PIC X(02) VALUE SPACES. 88 FS-INFL-OK VALUE '00'. 88 FS-INFL-DUP-KEY VALUE '02'. 88 FS-INFL-EOF VALUE '10'. PROCEDURE DIVISION. MAIN-PARA. PERFORM OPEN-PARA THRU OPEN-EXIT-PARA. PERFORM PROCESS-PARA THRU PROCESS-EXIT-PARA. PERFORM CLOSE-PARA THRU CLOSE-EXIT-PARA. STOP RUN. OPEN-PARA. INITIALIZE FS-INFL INFL-REC. OPEN INPUT INFL IF FS-INFL-OK CONTINUE ELSE DISPLAY "FILE OPEN FAILED: " FS-INFL GO TO EXIT-PARA END-IF. OPEN-EXIT-PARA. EXIT. PROCESS-PARA. MOVE '08792' TO EMP-ID READ INFL KEY IS EMP-ID INVALID KEY DISPLAY 'INVALID KEY' NOT INVALID KEY DISPLAY 'EMP-NAME:' EMP-NAME END-READ PROCESS-EXIT-PARA. EXIT. CLOSE-PARA. CLOSE INFL. CLOSE-EXIT-PARA. EXIT. EXIT-PARA. EXIT PROGRAM.
THE OUTPUT WILL BE
***RECORDS STORED IN FILE*** 08781 JOHN MICHAEL 08792 RICKEY PONTING 08803 M S DHONI ***RESULT*** EMP-NAME: RICKEY PONTING
Here in this program, we have assigned a few variables with different values and later manipulated the output using different data file handling properties to clarify the different concepts related to indexed files.
SAMPLE PROGRAM -2
This is a demo program to learn and understand the concept of rewrite and how to assign values from a different subprogram.
IDENTIFICATION DIVISION. PROGRAM-ID. REWRITEP. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT I-O-FL ASSIGN TO IOFLDD ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS EMP-ID FILE STATUS FS-I-O-FL. DATA DIVISION. FILE SECTION. FD I-O-FL. 01 I-O-FL-REC. 05 EMP-ID PIC X(05). 05 FILLER PIC X(01). 05 EMP-NAME PIC X(19). 05 REM-BYTE PIC X(55). WORKING-STORAGE SECTION. 01 FS-I-O-FFL PIC X(02) VALUE SPACES. PROCEDURE DIVISION. MAIN-PARA. PERFORM OPEN-PARA THRU OPEN-EXIT-PARA. PERFORM PROCESS-PARA THRU PROCESS-EXIT-PARA. PERFORM CLOSE-PARA THRU CLOSE-EXIT-PARA. STOP RUN. OPEN-PARA. INITIALIZE FS-I-O-FL I-O-FL-REC. OPEN I-O I-O-FL IF FS-I-O-FL-OK CONTINUE ELSE DISPLAY "FILE OPEN FAILED: " FS-I-O-FL GO TO EXIT-PARA END-IF. OPEN-EXIT-PARA. EXIT. PROCESS-PARA. MOVE '08792' TO EMP-ID READ I-O-FL KEY IS EMP-ID INVALID KEY DISPLAY 'INVALID KEY' NOT INVALID KEY DISPLAY 'EMP-NAME:' EMP-NAME END-READ MOVE 'ROGER FREDRER' TO EMP-NAME REWRITE I-O-FL-REC. PROCESS-EXIT-PARA. EXIT. CLOSE-PARA. CLOSE INFL. CLOSE-EXIT-PARA. EXIT. EXIT-PARA. EXIT PROGRAM.
THE OUTPUT WILL BE
***RECORDS STORED IN FILE*** 08781 JOHN MICHAEL 08792 RICKEY PONTING 08803 M S DHONI 08814 ROGER FREDRER ***RESULT*** EMP-NAME BEFORE: DUMMY NAME EMP-NAME AFTER: ROJER FREDRER
Here in this program, we have assigned a few variables with different values and later manipulated the output using different data file handling properties to clarify the different concepts related to REWRITE property of files.
----------------------------------------------------------------------------------------------------------------
SAMPLE PROGRAM -3
This is a demo program to learn and understand the concept of delete and how to assign values from different subprograms.
IDENTIFICATION DIVISION. PROGRAM-ID. REWRITEP. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT I-O-FL ASSIGN TO IOFLDD ORGANIZATION IS INDEXED ACCESS MODE IS RANDOM RECORD KEY IS EMP-ID FILE STATUS FS-I-O-FL. DATA DIVISION. FILE SECTION. FD I-O-FL. 01 I-O-FL-REC. 05 EMP-ID PIC X(05). 05 FILLER PIC X(01). 05 EMP-NAME PIC X(19). 05 REM-BYTE PIC X(55). WORKING-STORAGE SECTION. 01 FS-I-O-FFL PIC X(02) VALUE SPACES. PROCEDURE DIVISION. MAIN-PARA. PERFORM OPEN-PARA THRU OPEN-EXIT-PARA. PERFORM PROCESS-PARA THRU PROCESS-EXIT-PARA. PERFORM CLOSE-PARA THRU CLOSE-EXIT-PARA. STOP RUN. OPEN-PARA. INITIALIZE FS-I-O-FL I-O-FL-REC. OPEN I-O I-O-FL IF FS-I-O-FL-OK CONTINUE ELSE DISPLAY "FILE OPEN FAILED: " FS-I-O-FL GO TO EXIT-PARA END-IF. OPEN-EXIT-PARA. EXIT. PROCESS-PARA. MOVE '08781' TO EMP-ID READ I-O-FL KEY IS EMP-ID INVALID KEY DISPLAY 'INVALID KEY' NOT INVALID KEY DISPLAY 'EMP-NAME:' EMP-NAME END-READ MOVE 'ROGER FREDRER' TO EMP-NAME DELETE I-O-FL RECORD. END-DELETE DISPLAY ' EMP-NAME AFTER: ' EMP-NAME. PROCESS-EXIT-PARA. EXIT. CLOSE-PARA. CLOSE INFL. CLOSE-EXIT-PARA. EXIT. EXIT-PARA. EXIT PROGRAM.
THE OUTPUT WILL BE
***RESULT*** EMP-NAME BEFORE: JOHN MICHAEL RECORDS DELETED: JOHN MICHAEL ***RECORDS STORED IN FILE*** 08792 RICKEY PONTING 08803 M S DHONI 08814 ROGER FREDRER
Here in this program, we have assigned a few variables with different values and later manipulated the output using different data file handling properties to clarify the different concepts related to DELETE property of files.
----------------------------------------------------------------------------------------------------------------