Cobol programming Day4

Download Report

Transcript Cobol programming Day4

Programming in
COBOL-85
For IBM Mainframe
System 390
Jyothi Sridhar Kini
E&R, Infosys
Mail-id: [email protected]
Phone: 52179
7/21/2015 3:31 AM
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.
7/21/2015 3:31 AM
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.
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
3
Example
Data File
REGNO
BU103
BU101
BU102
NAME
Roopa
Deeptha
Bhavana
AGE
19
20
18
Index File
REGNO
ADDRESS
BU101
BU102
BU103
00a3c2
00a3d4
00b943
Index
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
4
Indexed and Relative
Files
7/21/2015 3:31 AM
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]
7/21/2015 3:31 AM
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
7/21/2015 3:31 AM
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
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
8
Indexed File Verbs
OPEN
 INPUT 




OPEN OUTPUT FileName


 I-O

7/21/2015 3:31 AM
E&R Dept., ITLInfosys
9
READ
To read the records in the file in direct fashion
READ FileName RECORD [ INTO DestItem]
[KEY IS KeyName]
[INVALID KEY StatementBlock ]
[END  READ]
To read the records in the file in sequential fashion
READ FileName NEXT RECORD [ INTO DestItem]
[AT END StatementBlock ]
[ END  READ]
7/21/2015 3:31 AM
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
WRITE RecName [ FROM SourceItem]
[INVALID KEY StatementBlock]
[END  WRITE]
REWRITE statement requires that the file must be opened in the
I-O mode
REWRITE RecName [ FROM SourceItem]
[INVALID KEY StatementBlock]
[END  REWRITE]
7/21/2015 3:31 AM
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
DELETE FileName RECORD
[ INVALID KEY StatementBlock]
END  DELETE
7/21/2015 3:31 AM
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.
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
13
START


 IS EQUAL TO



 IS =







 IS GREATER THAN 
START FileName  KEY 
KeyName


IS
>






 IS NOT LESS THAN 




IS
NOT
<




[ INVALID KEY StatementBlock]
END  START
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
14
Relative Files
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
15
Select and Assign for Relative Files
ENVIRONMENT DIVISION.
INPUT - OUTPUT SECTION.
FILE - CONTROL.
SELECT [OPTIONAL] FileName
ASSIGN TO FileSpec
[ORGANIZATION IS]


 ACCESS MODE IS


[FILE STATUS IS
RELATIVE
SEQUENTIAL [ RELATIVE KEY IS RelKey] 



 RANDOM 
RelKey
IS
KEY
RELATIVE



DYNAMIC



FileStatus]
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.
File ORGANIZATIONs - A comparative study
SEQUENTIAL
INDEXED
Slow when the hit
hit rate is low.
Slowest Direct Access
organization
Complicated to
change. (Insert,
Delete).
Especially slow while
adding or deleting of
records.
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
RELATIVE
Wasteful of storage
if the file is only
partially populated.
Complicated to
program.
18
File ORGANIZATIONs - A comparative study
SEQUENTIAL
Simplest
ORGANIZATION.
Most storage
efficient.
7/21/2015 3:31 AM
INDEXED
Can use multiple,
Alphanumeric keys
Not very storage
efficient.
E&R Dept., ITLInfosys
RELATIVE
Only a single,
numeric key
is allowed.
Least storage
Efficient.
19
Demonstration of
Sample Programs
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
20
Break
7/21/2015 3:31 AM
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.
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
22
COPY Verb
TextName
 OFLibraryNam e

COPY 
   

ExternalFi
leNameLite
ral
IN
LibraryNam
eLiteral

   



== PseudoText 1 ==  == PseudoText 2 == 



 Identifier 2

Identifier
1
 

REPLACING 
BY 








Literal1
Literal2














Word1
Word2


 


Examples
(1) COPY “EMPLOYEE-RECORD”.
(2) COPY
”STUDENT"
REPLACING
ABC BY XYZ.
7/21/2015
3:31 AM
E&R Dept., ITLInfosys
23
IDENTIFICATION DIVISION.
PROGRAM-ID. COPYEG1.
AUTHOR. JYOTHI SRIDHAR.
COPY Example
Copy member resides in
OPERN.CICS3.COPYLIB
ENVIRONMENT DIVISION.
FILE-CONTROL.
SELECT StudentFile ASSIGN TO "STUDENTS”
ORGANIZATION IS SEQUENTIAL.
01
DATA DIVISION.
FILE SECTION.
FD StudentFile.
COPY COPYFILE.
PROCEDURE DIVISION.
A0001-MAIN-PARA.
----------------------STOP RUN.
Student.
88 EndOfSF
VALUE
02 StudentNumber
02 StudentName
02 CourseCode
02 FeesOwed
02 AmountPaid
HIGH-VALUES.
PIC 9(7).
PIC X(60).
PIC X(4).
PIC 9(4).
PIC 9(4)V99.
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.
7/21/2015 3:31 AM
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
7/21/2015 3:31 AM
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.
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
27
Rules for coding CALLed Programs
DATA DIVISION.
WORKING
–STORAGE
SECTION.
 The CALLed
programs
should have a LINKAGE
---- SECTION in the DATA DIVISION.
LINKAGE
SECTION.
 If the CALLed
programs possess WORKING-
STORAGEPIC
SECTION,
then the LINKAGE
01 WS-NUM1
9(3).
SECTION
must
appear
after
it.
01 WS-NUM2 PIC 9(3).
 The PROCEDURE
DIVISION
of the CALLed
PROCEDURE
DIVISION
USING WS-NUM1,WS-NUM2
program must have a USING clause to identify
the variables passed from the CALLing program.
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
28
Rules for coding CALLed Programs
DATA DIVISION.
WORKING
–STORAGE
 The variables
definedSECTION.
in the LINKAGE
----SECTION can be defined in any order.
LINKAGE
SECTION.
 The variables
in the USING clause must be in
same order
as in the CALL statement of the
01 the
WS-NUM1
PIC 9(3).
CALLing program.
01 WS-NUM2 PIC 9(3).
 Instead of aDIVISION
STOP RUN
statement,
the CALLed
PROCEDURE
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
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
29
Review
 Index sequential file organization.
 Relative file organization.
 The COPY verb.
 The CALL verb.
7/21/2015 3:31 AM
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
7/21/2015 3:31 AM
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)
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
32
Any Questions
????
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
33
Thank you
Jyothi Sridhar Kini
E&R, Infosys
Mail-id: [email protected]
Phone: 52179
7/21/2015 3:31 AM
E&R Dept., ITLInfosys
34