View previous topic :: View next topic
|
Author |
Message |
srinivas12
New User
Joined: 11 Apr 2005 Posts: 6 Location: hyderabad
|
|
|
|
Hi,
Can anyone tell why index of an array cannot be displayed.
Also one more question.
We know that an ESDS cannot have index. Then where will the RBA's will be stored for random access... |
|
Back to top |
|
|
learnmf
Active User
Joined: 14 Mar 2005 Posts: 123
|
|
|
|
Quote: |
Can anyone tell why index of an array cannot be displayed. |
HI Srinivas
Index cannot be declare as a variable in data division.Thats why it cannot be displayed.
Thanks
Chandra |
|
Back to top |
|
|
srinivas12
New User
Joined: 11 Apr 2005 Posts: 6 Location: hyderabad
|
|
|
|
Hi Chandra,
I accept that it'll not be declared in the data division.Then it should be taken care by system.So we can call it as a system variable.
system variables like date,timestamps can be declared without declaring them.Then why cant an index???? |
|
Back to top |
|
|
somasundaran_k
Active User
Joined: 03 Jun 2003 Posts: 134
|
|
|
|
srinivas12
Since index refers to the memory address/register it can not be displayed directly by the DISPLAY statement.
If you want to DISPLAY it declare a working storage variable
Code: |
01 WS-IDX PIC 9(4) VALUE 0.
SET YOUR-IDX TO WS-IDX
DISPLAY 'INDEX:' WS-IDX
|
hth
-Som |
|
Back to top |
|
|
srinivas12
New User
Joined: 11 Apr 2005 Posts: 6 Location: hyderabad
|
|
|
|
Hi Som,
Thanks a lot for the reply .Could u answer my second question.It was asked in one of the interview.What i feel that we calculate RBA to retrieve a particular record but we'll not store that.Correct me if i am wrong |
|
Back to top |
|
|
somasundaran_k
Active User
Joined: 03 Jun 2003 Posts: 134
|
|
|
|
srinivas12
You are right. We are not storing the value of RBA in the file. RBA is used to access ESDS randomly. And it has been caluculated using the length of the record and the record number. You can use IDCAMS to Print the RBA for a particular/all the record/s.
Say for getting the RBA of 100th record in an ESDS
Code: |
//PRINTRBA EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//MYESDS DD DSN=YOUR.ESDS.FILE,DISP=SHR
//SYSIN DD *
PRINT INFILE(MYESDS) -
SKIP (99) -
COUNT (1)
/*
|
Remove the SKIP and COUNT from the SYSIN you will get the RBA printed for the entire records.
hth
-Som |
|
Back to top |
|
|
|