IBM Mainframe Forum Index
 
Log In
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Register
 

Why INDEX of an array cannot be displayed


IBM Mainframe Forums -> JCL & VSAM
Post new topic   Reply to topic
View previous topic :: View next topic  
Author Message
srinivas12

New User


Joined: 11 Apr 2005
Posts: 6
Location: hyderabad

PostPosted: Mon Apr 11, 2005 7:22 pm
Reply with quote

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
View user's profile Send private message
learnmf

Active User


Joined: 14 Mar 2005
Posts: 123

PostPosted: Mon Apr 11, 2005 8:08 pm
Reply with quote

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
View user's profile Send private message
srinivas12

New User


Joined: 11 Apr 2005
Posts: 6
Location: hyderabad

PostPosted: Mon Apr 11, 2005 9:54 pm
Reply with quote

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
View user's profile Send private message
somasundaran_k

Active User


Joined: 03 Jun 2003
Posts: 134

PostPosted: Mon Apr 11, 2005 10:17 pm
Reply with quote

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
View user's profile Send private message
srinivas12

New User


Joined: 11 Apr 2005
Posts: 6
Location: hyderabad

PostPosted: Mon Apr 11, 2005 11:00 pm
Reply with quote

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
View user's profile Send private message
somasundaran_k

Active User


Joined: 03 Jun 2003
Posts: 134

PostPosted: Mon Apr 11, 2005 11:53 pm
Reply with quote

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
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic View Bookmarks
All times are GMT + 6 Hours
Forum Index -> JCL & VSAM

 


Similar Topics
Topic Forum Replies
No new posts Cobol file using index COBOL Programming 2
No new posts COBOL Ascending and descending sort n... COBOL Programming 5
No new posts DL/I status code AK for GU call using... IMS DB/DC 1
No new posts To find an array of words (sys-symbol... JCL & VSAM 9
No new posts How to move values from single dimens... COBOL Programming 1
Search our Forums:

Back to Top