× 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.



Hello Rob,

You're trying to initialize a pointer to the address of a datastructure
whose address is based on that very same pointer.

You need to involve some actual storage to make it work: Define a variable
f.x.:
     D RcvVar              s                        4096a

Then initialize all three pointers to the address of that storage location:
     D pOBJL0100       S               *   Inz(%addr(RcvVar))
     D pOBJL0200       S               *   Inz(%addr(RcvVar))
     D pOBJL0300       S               *   Inz(%addr(RcvVar))


Best regards,
Carsten Flensburg



----- Original Message -----
From: <rpg400-l-admin@midrange.com>
To: <rpg400-l@midrange.com>
Sent: Tuesday, September 18, 2001 5:27 PM
Subject: Stacking data structures


>
>
>
> Because of the many possible formats you can use on some of the list API's
> we thought of stacking data structures.  Below is a sample:
>
>       * OBJL0100 - QUSLOBJ - List Objects - Object names
>      D pOBJL0100       S               *   Inz(%addr(OBJL0100D))
> Ptr object list
>      D OBJL0100        DS                  Based(pOBJL0100)
>      D  OLObjNam                     10A
> Object name
>      D  OLObjLib                     10A
> Object library
>      D  OLObjTyp                     10A
> Object type
>
>       * OBJL0200 - QUSLOBJ - List Objects - Text description and extended
> attribute
>      D pOBJL0200       S               *   Inz(%addr(OBJL0200D))
> Ptr object list
>      D OBJL0200        DS                  Based(pOBJL0200)
>      D  OBJL0100D                          Like(OBJL0100)
>      D  OLObjSts                      1A
> Object status
>      D  OLExtAtr                     10A
> Extended attribute
>      D  OLTxtDsc                     50A
> Text description
>      D  OLDefAtr                     10A
> User defined atr
>      D  OLRes1                        7A
> Reserved
>
>       * OBJL0300 - QUSLOBJ - List Objects - Basic object information
>      D pOBJL0300       S               *
>      D OBJL0300        DS                  Based(pOBJL0300)
>      D  OBJL0200D                          Like(OBJL0200)
>      D  OLAuxSP                      10I 0
> Aux storage pool
>      D  OLObjOwn                     10A
> Object owner
>      D  OLObjDom                      2A
> Object domain
>      D  OLCrtDat                      8A
> Create date/time
>      D  OLChgDat                      8A
> Change date/time
>      D  OLStorage                    10A
> Storage
>      D  OLCmprSts                     1A
> Compression status
>      D  OLAlwChg                      1A
> Allow program change
>      D  OLAudVal                     10A
> Auditing value
>      D  OLRes2                        9A
> Reserved
>
> But, when we compile this we get
>  Msg id  Sv Number Seq     Message text
> *RNF0314 20      7 000200+ Built-in function %ADDR(OBJL0100D) does not
have
> a value
>                            known at compile-time; built-in function is
> ignored.
> *RNF0314 20     14 000900+ Built-in function %ADDR(OBJL0200D) does not
have
> a value
>                            known at compile-time; built-in function is
> ignored.
>
> So we tried to cheat and changed a few lines:
>      D pOBJL0300       S               *
> became
>      D pOBJL0300       S               *   Inz(%addr(OBJL0300P))
> Ptr object list
> and we added
>      D OBJL0300P       S              1A
> and got the same results.
>
> I)  Should I try reporting this as a bug?
> II)  Any suggested workarounds?
>
>
> Rob Berendt
>
> ==================
> A smart person learns from their mistakes,
> but a wise person learns from OTHER peoples mistakes.
>
> _______________________________________________
> This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
> To post a message email: RPG400-L@midrange.com
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/rpg400-l
> or email: RPG400-L-request@midrange.com
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/rpg400-l.
>



As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

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.