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



To account for the case where no parameter was passed in that position at
all, by checking %parms I verify that a parm was really there and then the
%addr checks to see if it was *omit.  Here is an excerpt of a post by
Barbara Morris on the iseriesnetwork forum that explains why you need the
%parms check first.

<excerpt>
When you access an unpassed parameter, the system looks at the parameter
stack where the parameter would be if it had been passed. You can't rely on
that area containing a non-pointer. Code using this technique tends to break
unexpectedly and apparently randomly.

You can use %addr(parm) = *null to test whether options(*omit) parameters
have had *omit passed, as long as they don't also have options(*nopass).
Unfortunately, the compiler won't allow this for CONST parameters.
<end of excerpt>

Scott Mildenberger

> -----Original Message-----
> From: rob@dekko.com [mailto:rob@dekko.com]
> Sent: Tuesday, February 19, 2002 7:32 AM
> To: rpg400-l@midrange.com
> Subject: RE: Optional Parameters in Subproceedures
>
>
>
> If you are using the %addr, then why bother with the %parms?
>
> Rob Berendt
> --
> "They that can give up essential liberty to obtain a little temporary
> safety deserve neither liberty nor safety."
> Benjamin Franklin
>
>
>
>                     Scott
>                     Mildenberger            To:
> "'rpg400-l@midrange.com'" <rpg400-l@midrange.com>
>                     <Smildenber@Washc       cc:
>                     orp.com>                Fax to:
>                     Sent by:                Subject:     RE:
> Optional Parameters in Subproceedures
>                     rpg400-l-admin@mi
>                     drange.com
>
>
>                     02/19/2002 09:22
>                     AM
>                     Please respond to
>                     rpg400-l
>
>
>
>
>
>
> Simon,
>
> In the OPTIONS(*NOPASS : *OMIT) case is there any reason you
> can't use the
> %parms and %addr together?  At least that is how I do it, just curious
> because in the first part of your message you mentioned %addr
> was easier to
> use but you didn't use it here.  Want to make sure I'm not missing
> something
> by doing the following:
>
>  C                   IF        ( %PARMS >= 2 ) and (%addr(TheParm) <>
> *NULL)
>   ***  The parm can be used.
>  C                   ENDIF
>
> Scott Mildenberger
>
> > -----Original


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.