On 2023-02-23 8:58 p.m., Peter Dow wrote:
Are you saying that a data structure with the DTAARA keyword without the *AUTO parameter is not a "data area data structure"? Even though it is a data structure related to a data area? I'd argue that they're both data area data structures, and that the *AUTO parm indicates the *INIT and *TERM phases read and write it.

It's not a "data area data structure" according to the way the RPG manual defines it. Before there were free-form definitions, a "data area data structure" could only be defined as a UDS, with the 'U' data-structure-type.


On page 211 of the7.4 RPGLE Reference manual it says

"You can specify the data area operations (IN, OUT, and UNLOCK) for a data area that is implicitly read in
and written out. Before you use a  *data area data structure***with these operations, you must specify that
*data area data structure* name in the result field of the *DTAARA DEFINE operation or with the DTAARA
keyword."


A "data area data structure" is normally only handled implicitly. If you want to handle it with IN and OUT, you have to do more coding. The fixed-form *DTAARA DEFINE opcode means the same as DTAARA(*USRCTL), and the DTAARA keyword by itself implies DTAARA(*USRCTL).

It was weird before the free-form DTAARA keyword existed. The DTAARA keyword is also weird and complicated because it's duplicating the weirdness of the fixed-form UDS + *DTAARA DEFINE.


Now I'm wondering about the *USRCTL parameter. If both *AUTO and *USRCTL are specified, that should mean that the data area is read during the *INIT phase, can be read (IN opcode) and written (OUT opcode) at any time after the *INIT phase and before the *TERM phase, and then is written during the *TERM phase.

That is correct.


If *AUTO is specified, but not *USRCTL, what does that mean? Using the IN and OUT opcodes with that data structure is not allowed?

Also correct.


This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2026 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.