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



You're correct in your belief that CONST is what is allowing this...

It's designed to allow you to do so when needed, which means it's your
responsibility to know you're doing it. :)

Changing the procedure is a bad idea....especially when there's a better way.

Basically
1) Rename existing procedure(MyProc --> MyProc_old) without changing PI
2) Move code to new MyProc with changed PI
3) MyProc_old simply calls MyProc
4) update binder language source, taking care to just rename the
existing MyProc line and adding a new one at the end and either leave
a hard coded signature alone or make use multiple ones with *PRV

As long as you use binder language to create your service program, no
existing callers will need to be recompiled. If in the future callers
are recompiled they will make use of the new function. Optionally,
you can leave the original name so that existing callers will always
call the old procedure. You'd have to do this if you changed the
parameters in some incompatible way. For example changing the 45a
const to a 1024a varying const.

Here's some more info:
http://publib.boulder.ibm.com/infocenter/iseries/v7r1m0/topic/ilec/sc415606125.htm#blxmp4
http://archive.midrange.com/rpg400-l/200306/msg00365.html

HTH,
Charles

On Fri, Mar 23, 2012 at 7:22 AM, Dave <dfx1@xxxxxxxxxxxxxx> wrote:
Hi, all,
I think this subject has been well debated in the past, but I just got
bitten again and would like to know how to protect myself in the
future. I copied and adapted some code and did not realise until well
into testing that I was passing a 100A parameter to a procedure
expecting 45A. I believe that when CONST is specified, the compiler
converts the parameter and there is no warning. I'm still wondering
why as I think that prototyping was introduced in order to protect one
against this sort of error. Now I discover that many other procedures
are doing the same call and I have to analyze to see if I can just go
ahead and change the 45A parameter to 100A
--
This is the RPG programming on the IBM i / System i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
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 ...

Follow-Ups:
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.