You are on page 1of 34

Programming in

COBOL-85
For IBM Mainframe
System 390
Jyothi Sridhar Kini
E&R, Infosys
Mail-id: Jyothis@infosys.com
Phone: 52179

10/15/08 18:48 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.

10/15/08 18:48 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.
10/15/08 18:48 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
10/15/08 18:48 E&R Dept., ITLInfosys 4
Indexed and Relative
Files

10/15/08 18:48 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]

10/15/08 18:48 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

10/15/08 18:48 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

10/15/08 18:48 E&R Dept., ITLInfosys 8


Indexed File Verbs
OPEN

 INPUT 
 
 
OPEN OUTPUT FileName
 
 I-O 

10/15/08 18:48 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

10/15/08 18:48 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

10/15/08 18:48 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

10/15/08 18:48 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.

10/15/08 18:48 E&R Dept., ITLInfosys 13


START

10/15/08 18:48 E&R Dept., ITLInfosys 14


Relative Files

10/15/08 18:48 E&R Dept., ITLInfosys 15


Select and Assign for Relative Files

10/15/08 18:48 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.

10/15/08 18:48 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.

10/15/08 18:48 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.

10/15/08 18:48 E&R Dept., ITLInfosys 19


Demonstration of

Sample Programs

10/15/08 18:48 E&R Dept., ITLInfosys 20


Break

10/15/08 18:48 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.
10/15/08 18:48 E&R Dept., ITLInfosys 22
COPY Verb
TextName  OFLibraryName 
COPY     
ExternalFileNameLiteral IN
   LibraryNameLiteral

 == PseudoText1 ==  == PseudoText2 ==  


   Identifier2  
REPLACINGIdentifier1   
 BY   
 Literal1 Literal2 
     
   
 Word1  Word2  

Examples

(1) COPY “EMPLOYEE-RECORD”.


10/15/08 18:48 E&R Dept., ITLInfosys 23
COPY Example
IDENTIFICATION DIVISION.
Copy member resides in
PROGRAM-ID. COPYEG1.
OPERN.CICS3.COPYLIB
AUTHOR. JYOTHI SRIDHAR.
01 Student.

88 EndOfSF VALUE HIGH-VALUES.

ENVIRONMENT DIVISION.02 StudentNumber PIC 9(7).

FILE-CONTROL. 02 StudentName PIC X(60).

02 CourseCode PIC X(4).


SELECT StudentFile ASSIGN TO "STUDENTS”
02 FeesOwed PIC 9(4).
ORGANIZATION IS SEQUENTIAL.
02 AmountPaid PIC 9(4)V99.

DATA DIVISION.
10/15/08 18:48 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.
10/15/08 18:48 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

10/15/08 18:48 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.
10/15/08 18:48 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.
LINKAGE SECTION.
 If the CALLed 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.

10/15/08 18:48 E&R Dept., ITLInfosys 28


Rules for coding CALLed Programs
DATA DIVISION.
 The variables
WORKING definedSECTION.
–STORAGE in the LINKAGE
----SECTION can be defined in any order.
 The variables
LINKAGE in the USING clause must be in
SECTION.
01 the same order
WS-NUM1 as in the CALL statement of the
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
A001-MAIN-PARA.
statement to transfer the control back to the
CALLed program.
-----
EXIT PROGRAM
10/15/08 18:48 E&R Dept., ITLInfosys 29
Review
 Index sequential file organization.

 Relative file organization.

 The COPY verb.

 The CALL verb.

10/15/08 18:48 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

10/15/08 18:48 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)
10/15/08 18:48 E&R Dept., ITLInfosys 32
Any
Questions ????

10/15/08 18:48 E&R Dept., ITLInfosys 33


Thank you

Jyothi Sridhar Kini


E&R, Infosys
Mail-id: Jyothis@infosys.com
Phone: 52179

10/15/08 18:48 E&R Dept., ITLInfosys 34

You might also like