Hi,
Like many higher level programming languages (COBOL, PL/1), REXX does not
give the programmer access to the RDW, but it sets the length of the record
retrieved as the variable length when using the (STEM x.) variant of EXECIO.
EXECIO is of course environment dependent, and I only know it's use in z/OS
(MVS); I'm not sure if it works in z/VM CMS the same way. This has been
working like this since the porting of REXX to MVS (from VM). I also don't
like to use STACK I/O, so I'm not sure how this would work if you'd use that
variant of the EXECIO command.
To write variable record datasets you need to allocate them as RECFM=VB,
LRECL={longest anticipated record length}, up to 32767 (minus 4 for the RDW;
that is the highest positive number fitting in 2 bytes x'7FFF'). (I believe
z/OS 2.1 and above allow you now the work with RECFM=VBS records, so the
record length can be larger. The only limit I know of at this point is; how
much virtual storage you have available in your TSO session (REGION). (I
haven't really tried that yet, so there may be some other hang ups.). When
you use the DISKW parameter and the STEM x. variant, EXECIO will use the
length of the current variable (e.g. x.{array entry number}, to set the RDW
correctly (It's essentially using the QSAM access method in z/OS). There is
no way for the programmer to "fiddle" with the RDW, and that is good!
Thank you
Roger
-----Original Message-----
From: TSO REXX Discussion List [mailto:
TSO-...@VM.MARIST.EDU] On Behalf Of
Paul Gilmartin
Sent: Thursday, February 26, 2015 11:27 AM
To:
TSO-...@VM.MARIST.EDU
Subject: Re: [TSO-REXX] EXECIO with VB datasets