- Set Change-options to 'Y'.
Change the value for Varying-length-request as follows.
If the length information is to... Then change the value for Varying-length-request to... precede immediately the data to which it applies Y be supplied separately from the data to which it applies N
The following figures show what the DBCAREA must contain in either of the above cases.
If Varying-length-request is set to this value... Then the address supplied in the appropriate pointer field points to... Y a two-byte (in binary) area that precedes the data.
The corresponding DBCAREA length field (for example, Request-length, Run-length, and so on) is not used.
The length value reflects only the length of the data, and does not include the two bytes of its own length, as shown in the following figure.
N the beginning of the data.
The length of the data is supplied in the appropriate DBCAREA length field, as shown in the following figure.
If the Maximum-parcel option is set to H, then the two-byte length is considered to be an unsigned value. Because PL/I does not support unsigned integers, you cannot use the Varying-length-request option to allow the PL/I VARYING attribute for the Request-pointer or the USING-data-pointer for requests greater than 32767.
Since the maximum value that can be contained in the two-byte length is 65535, larger lengths cannot use Varying-length-request.
The setting of Varying-length-request affects the request string, logon string, run string, using data string, and input data string.
Note that the fragments of the string must be in the following order, if applicable:
- two-byte length information
- n-byte indicator information
- bytes containing the text or value information
The only string to which all three fragments apply is a data string if Varying-length-request is 'Y' and Use-presence-bits is 'Y'.
In situations in which only two fragments apply, they must be in the order shown above.
In all cases, the pointer to the string must contain the address of the first fragment that is supplied.