× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Data Structure redefinition
  • From: bmorris@xxxxxxxxxx
  • Date: Fri, 3 Nov 2000 10:14:16 -0500
  • Importance: Normal


>Date: Thu, 02 Nov 2000 13:28:14 -0800
>From: Jim Langston <jimlangston@conexfreight.com>
>
> > ... RPG data structures always have contiguous
> > storage. ...
>
>Hmm.. I'm not sure if I agree with that statement.  What about this?
>
>D BB          S        10A
>
>D MyStru     DS
>D  AA                  10A
>D  BB                  10A
>D  CC                  10A
>
>Not positive this will compile, but you should get the idea.
>
>This is more commonly seen in File structures, however, but think of
>the case where you are using a variable in a Data Structure that also
>exists in your file's DDS.
>
>I would not guarantee that AA BB and CC were all stored contiguously with
>each other.

Jim, BB can't be both a standalone field and a subfield in a data
structure.  You are confused by the I specs for a file which are not
definitions at all; they are more like MOVE operations from the input
buffer to a program variable.  I specs are not definitions; the
compiler will use the I spec to generate a definition for you if
the field is not already defined elsewhere.

Consider this:

  ISOMEFILE ...
  I                  1   10   FLD1
  I                  1   10   FLD2

If these I specs truly represented a structure, then FLD1 and
FLD2 would be the same storage location, and a change to FLD1
would be reflected in the value of FLD2.  But in fact, these
two I specs just say to move the same buffer contents to two
different fields.

Quiz:

Ffile1     if   f   10        disk
Ffile2     if   f   10        disk
Ifile1     ns  01
I                             p    1    3 0fld1
I                             s    1    5 0fld2
I                             b    1    2 0fld3
Ifile2     ns  01
I                             s    1    5 0fld1
I                             p    1    3 0fld2
I                             b    1    2 0fld3

a. Are these I specs legal?
b. What would the cross reference show as the data type of fields
FLD1, FLD2 and FLD3 (zoned, packed or binary?)

By the way, RPG _does_ guarantee that AA, BB and CC are contiguous
(assuming you remove the illegal declaration of the standalone
field BB).  The manual says:
  "The ILE RPG compiler allows you to define an area in storage
   and the layout of the fields, called subfields, within the
   area.  This area in storage is called a data structure."

Barbara Morris, IBM Toronto Lab, RPG Compiler Development


+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...


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

This mailing list archive is Copyright 1997-2024 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.