0% found this document useful (0 votes)
27 views34 pages

Cobol Day 4

The document discusses various file organization techniques in COBOL, including indexed and relative files. It provides examples of how to define and access these different file types using statements like SELECT, ASSIGN, READ, WRITE and DELETE. The session also covers the COPY statement and demonstrates sample programs.

Uploaded by

skorlipa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views34 pages

Cobol Day 4

The document discusses various file organization techniques in COBOL, including indexed and relative files. It provides examples of how to define and access these different file types using statements like SELECT, ASSIGN, READ, WRITE and DELETE. The session also covers the COPY statement and demonstrates sample programs.

Uploaded by

skorlipa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 34

Programming in

COBOL-85
For IBM Mainframe
System 390
Jyothi Sridhar Kini
E&R, Infosys
Mail-id: [email protected]
Phone: 52179

04/27/24 06:04 E&R Dept., ITLInfosys


Objectives of the Session
(1) Index sequential file organization.

(2) Relative file organization.

(3) The COPY verb.

(4) The CALL verb.

(5) Demonstration of sample programs.

04/27/24 06:04 E&R Dept., ITLInfosys 2


Indexed file organization
Essentially comprises of two files namely
(1) A data file and
(2) An index file.
Provides both sequential and random access.
Slowest of all types of file organizations.
Facilitates the use of multiple alphanumeric
keys.
Moderately storage efficient.

04/27/24 06:04 E&R Dept., ITLInfosys 3


Example
Data File

REGNO NAME AGE

BU103 Roopa 19
BU101 Deeptha 20
BU102 Bhavana 18

Index File

REGNO ADDRESS
Index
BU101 00a3c2
BU102 00a3d4
BU103 00b943
04/27/24 06:04 E&R Dept., ITLInfosys 4
Indexed and Relative
Files

04/27/24 06:04 E&R Dept., ITLInfosys 5


ED Entries for Indexed Files
ENVIRONMENT DIVISION.
INPUT - OUTPUT SECTION.
FILE - CONTROL.
SELECT [LogicalFN ] FileName
ASSIGN TO FileSpec
 ORGANIZATION IS INDEXED

 SEQUENTIAL  
  
ACCESS MODE IS   RANDOM   
   
   DYNAMIC  
 RECORD KEY IS UniqueRecKey
 
ALTERNATE RECORD KEY IS AltKey  WITH DUPLICATES
 FILE STATUS IS FileStatus

04/27/24 06:04 E&R Dept., ITLInfosys 6


About index sequential file
 An indexed file in Cobol can be accessed
either sequentially or randomly.
 When accessed randomly, the sequence in
which the records are accessed can be
specified by the data item called record
key

04/27/24 06:04 E&R Dept., ITLInfosys 7


Prime key and alternate key

 The field which is specified in the RECORD


KEY clause is known as prime key
 Alternate key for the file can be specified using
the ALTERNATE KEY clause
 Alternate keys are unique by default
 If the file has duplicate values for the alternate
key then WITH DUPLICATES phrase should
be specified

04/27/24 06:04 E&R Dept., ITLInfosys 8


Indexed File Verbs
OPEN

 INPUT 
 
 
OPEN OUTPUT FileName
 
 I-O 

04/27/24 06:04 E&R Dept., ITLInfosys 9


READ
To read the records in the file in direct fashion

To read the records in the file in sequential fashion

04/27/24 06:04 E&R Dept., ITLInfosys 10


Write and Rewrite
The records are written to the logical position as determined from
the value of the record key

REWRITE statement requires that the file must be opened in the


I-O mode

04/27/24 06:04 E&R Dept., ITLInfosys 11


DELETE
•The record last read by the READ statement is
deleted in case of sequential read
•In case of random read the record to be deleted is
specified in the record key option
• File must be opened in the I-O mode

04/27/24 06:04 E&R Dept., ITLInfosys 12


START statement

 The START positions the file to the first logical


record whose record key satisfies the condition
specified by the key phrase

 The access mode must be SEQUENTIAL OR


DYNAMIC

 File must be opened in the I-O or input mode.

04/27/24 06:04 E&R Dept., ITLInfosys 13


START

04/27/24 06:04 E&R Dept., ITLInfosys 14


Relative Files

04/27/24 06:04 E&R Dept., ITLInfosys 15


Select and Assign for Relative Files

04/27/24 06:04 E&R Dept., ITLInfosys


Relative File Verbs

 All the verbs discussed with INDEXED


files holds good in Relative Organization
too.

 Point to remember is that relative key is


not part of Relative record and is
declared as WS variable and must
contain proper values.
04/27/24 06:04 E&R Dept., ITLInfosys
File ORGANIZATIONs - A comparative study

SEQUENTIAL INDEXED RELATIVE

Slow when the hit Slowest Direct Access Wasteful of storage


hit rate is low. organization if the file is only
partially populated.

Complicated to Especially slow while Complicated to


change. (Insert, adding or deleting of program.
Delete). records.

04/27/24 06:04 E&R Dept., ITLInfosys 18


File ORGANIZATIONs - A comparative study

SEQUENTIAL INDEXED RELATIVE

Simplest Can use multiple, Only a single,


ORGANIZATION. Alphanumeric keys numeric key
is allowed.

Most storage Not very storage Least storage


efficient. efficient. Efficient.

04/27/24 06:04 E&R Dept., ITLInfosys 19


Demonstration of

Sample Programs

04/27/24 06:04 E&R Dept., ITLInfosys 20


Break

04/27/24 06:04 E&R Dept., ITLInfosys 21


COPY Verb
The COPY is executed at compile time unlike other
COBOL verbs which are executed at run time.
The COPY statement allows programs to include
frequently used source code text from a copy file or a
copy library.
The COPY can include source code text with or
without change into the client program.
Each client program which wants to use items
described in the copy library uses the COPY verb to
include the descriptions it requires.
04/27/24 06:04 E&R Dept., ITLInfosys 22
COPY Verb
TextName  OFLibraryName 
COPY      
 ExternalFileNameLiteral IN
    LibraryNameLiteral

 == PseudoText 1 ==  == PseudoText 2 ==  


   Identifier2  
REPLACING Identifier1   
   BY    
 Literal1 Literal2 
       
  
Word1  
 Word2 
 

Examples

(1) COPY “EMPLOYEE-RECORD”.

(2) COPY 04/27/24


”STUDENT"06:04 REPLACING ABC
E&R Dept., BY XYZ.
ITLInfosys 23
IDENTIFICATION
COPY Example
IDENTIFICATION DIVISION.
DIVISION.
Copy member resides in
PROGRAM-ID.
PROGRAM-ID. COPYEG1.
COPYEG1. OPERN.CICS3.COPYLIB
AUTHOR.
AUTHOR. JYOTHI
JYOTHI SRIDHAR.
SRIDHAR.
01
01 Student.
Student.

88
88 EndOfSF
EndOfSF VALUE
VALUE HIGH-VALUES.
HIGH-VALUES.
ENVIRONMENT
ENVIRONMENT DIVISION.
DIVISION.
02
02 StudentNumber
StudentNumber PIC
PIC 9(7).
9(7).

FILE-CONTROL. 02
02 StudentName
StudentName PIC
PIC X(60).
X(60).
FILE-CONTROL.
02
02 CourseCode
CourseCode PIC
PIC X(4).
X(4).
SELECT
SELECT StudentFile
StudentFile ASSIGN
ASSIGN TO
TO "STUDENTS”
"STUDENTS”
02
02 FeesOwed
FeesOwed PIC
PIC 9(4).
9(4).
ORGANIZATION
ORGANIZATION IS
IS SEQUENTIAL.
SEQUENTIAL.
02 AmountPaid
02 PIC
AmountPaid PIC 9(4)V99.
9(4)V99.

DATA
DATA DIVISION.
DIVISION.
04/27/24 06:04 E&R Dept., ITLInfosys
CALL Verb
 Is the most important verb that provides structured
programming capabilities in COBOL.
 Is equivalent to a function or a sub-routine call in
other computer languages.
 Is similar to the COPY verb, in the sense that it
provides code re-usability.
 Provides two ways of passing parameters to the
called program
(1) By REFERENCE and (2) By CONTENT.
04/27/24 06:04 E&R Dept., ITLInfosys 25
Syntax of call statement

 CALL NAME OF THE SUB PROGRAM


USING THE PARAMETER NAMES
Example
CALL SUBPGM1 USING NUM1,NUM2

04/27/24 06:04 E&R Dept., ITLInfosys 26


Passing by reference and value

 By REFERENCE
– CALL SUBPGM1 USING WS-NUM1.

 BY VALUE
– CALL SUBPGM1 USING
BY CONTENT WS-NUM1
BY REFERENCE WS-NUM2
BY REFERENCE WS-NUM3.
04/27/24 06:04 E&R Dept., ITLInfosys 27
Rules for coding CALLed Programs
DATA DIVISION.
WORKING –STORAGE
 The CALLed SECTION.
programs should have a LINKAGE
---- SECTION in the DATA DIVISION.
 If the CALLed
LINKAGE SECTION.
programs possess WORKING-
STORAGEPIC
01 WS-NUM1 SECTION,
9(3). then the LINKAGE
SECTION must appear after it.
01 WS-NUM2 PIC 9(3).
 The PROCEDURE
PROCEDURE DIVISION
DIVISION of the CALLed
USING WS-NUM1,WS-NUM2
program must have a USING clause to identify
the variables passed from the CALLing program.

04/27/24 06:04 E&R Dept., ITLInfosys 28


Rules for coding CALLed Programs
DATA DIVISION.
 The variables
WORKING defined SECTION.
–STORAGE in the LINKAGE
----SECTION can be defined in any order.
 The variables
LINKAGE in the USING clause must be in the
SECTION.
same order as in the CALL statement of the
01 WS-NUM1 PIC 9(3).
CALLing program.
01 WS-NUM2 PIC 9(3).
 Instead of a STOP RUN statement, the CALLed
PROCEDURE DIVISION USING WS-NUM1,WS-NUM2.
program must contain an EXIT PROGRAM
statement to transfer the control back to the
A001-MAIN-PARA.
CALLed program.
-----
EXIT PROGRAM
04/27/24 06:04 E&R Dept., ITLInfosys 29
Review
 Index sequential file organization.

 Relative file organization.

 The COPY verb.

 The CALL verb.

04/27/24 06:04 E&R Dept., ITLInfosys 30


Review questions
 DELETE statement should be followed by ( file/record)
File name
_________
 For updation and deletion, the files are to be opened in
Input-output (I-O)
___________________ mode
 COPY statement is allowed only in the data division
( True / false )
 Indicate which of the following COBOL verb does not
use FROM phrase
– ACCEPT
– DISPLAY
– PERFORM
– WRITE

04/27/24 06:04 E&R Dept., ITLInfosys 31


Review Questions
 LINKAGE SECTION cannot have any
value clause (True / False )

 RENAMES clause cannot be used in


LINKAGE SECTION (True / False )

 COPY statement is executed during


compile time rather then run time
( True/ False)
04/27/24 06:04 E&R Dept., ITLInfosys 32
Any
Questions ????

04/27/24 06:04 E&R Dept., ITLInfosys 33


Thank you

Jyothi Sridhar Kini


E&R, Infosys
Mail-id: [email protected]
Phone: 52179

04/27/24 06:04 E&R Dept., ITLInfosys 34

You might also like