Let's understand Mainframe
Home Tutorials Interview Q&A Quiz Mainframe Memes Contact us About us

Module 10: File processing


START statement

  • START statement is used to position the file pointer at a specific record location within indexed or relative file for subsequent sequential record retrieval
  • This statement can be used only for Indexed and Relative files which are opned either in INPUT or I-O mode.
  • Access mode of file must be sequential or dynamic. It cannot be coded for Random access
  • It establish the current location in the cluster for a READ NEXT statement.
  • It does not retrieve record; It only sets the current record pointer
  • Basic Syntax:-

    START file-name   [KEY IS  {IS EQUAL TO/           IS = /           IS GREATER THAN /           IS >  /           IS NOT LESS THAN  /           IS NOT <  /           IS GREATER THAN OR EQUAL TO /           IS >=  }       key-data-name]   [INVALID KEY imperative-statement-1]   [NOT INVALID KEY imperative-statement-2] [END-START].

  • Where,
    • file-name is logical file name
    • KEY IS used to position file pointer at logical record in file whose key field satisfy the comparison
    • INVALID KEY imperative-statement-1 : This becomes true when record is not found for specified key and thus causes execution of imperative-statement-1
    • NOT INVALID KEY imperative-statement-2: This is used to specify statements to be executed when START operation succeeds

Example of START statement:-

INPUT FILE (KSDS DATASET):-

10000STEVE OKURA 20000AMIT KHATRI 30000ASHIK KONDANA 40000DHAVAL GOSALIYA 50000DARSHAN MANIYAR 60000NAYANISH DAMANI

COBOL PROGRAM:-

000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. STARTPGM. 000300 ENVIRONMENT DIVISION. 000400 INPUT-OUTPUT SECTION. 000500 FILE-CONTROL. 000600 SELECT EMPLOYEE ASSIGN TO EMPL 000700 ORGANIZATION IS INDEXED 000800 ACCESS IS SEQUENTIAL 000900 RECORD KEY IS EMPL-ID. 001000 DATA DIVISION. 001100 FILE SECTION. 001200 FD EMPLOYEE. 001300 01 EMPLOYEE-REC. 001400 05 EMPL-ID PIC 9(05). 001500 05 EMPL-NAME PIC X(15). 001600 WORKING-STORAGE SECTION. 001700 01 WS-EMPL. 001800 05 WS-EMPL-ID PIC 9(05). 001900 05 WS-EMPL-NAME PIC X(15). 002000 01 WS-EOF-FLAG-SW PIC X(1) VALUE 'N'. 002100 88 WS-EOF-FLAG VALUE 'Y'. 002200 88 WS-EOF-FLAG-NO VALUE 'N'. 002300 PROCEDURE DIVISION. 002400 MAIN-PARA. 002500 OPEN INPUT EMPLOYEE 002600 MOVE '20000' TO EMPL-ID 002700 START EMPLOYEE KEY IS > EMPL-ID 002800 PERFORM READ-PARA THRU READ-PARA-EXIT 002900 UNTIL WS-EOF-FLAG-SW = 'Y'. 003000 CLOSE EMPLOYEE 003100 STOP RUN. 003200 READ-PARA. 003300 READ EMPLOYEE INTO WS-EMPL 003400 AT END 003500 MOVE 'Y' TO WS-EOF-FLAG-SW 003600 NOT AT END 003700 DISPLAY 'REC : ' WS-EMPL 003800 END-READ. 003900 READ-PARA-EXIT. 004000 EXIT.

Mainframe Job Step to run above program:-

//STEP01 EXEC PGM=STARTPGM //STEPLIB DD DSN=USER.TEST.LOADLIB,DISP=SHR //EMPL DD DSN=MAINFRAM.FILE.KSDS.MSTR,DISP=SHR //SYSOUT DD SYSOUT=*

SYSOUT After Job run:-

REC : 30000ASHIK KONDANA REC : 40000DHAVAL GOSALIYA REC : 50000DARSHAN MANIYAR REC : 60000NAYANISH DAMANI



Advertisements






© copyright mainframebug.com
Privacy Policy