Having the caller pass a pointer by reference seems to be just adding
confusion. Here's (what seems to me to be) a simpler solution:

Caller passes the parameter 'naturally'...


pgm
dcl &p1 *char 25 '1234567890098765432124680'
call t2 &p1
endpgm




Receiver sets basing pointer from %addr()...


h dftactgrp(*no) actgrp(*new)

d t2 pr
d p1 1a
d t2 pi
d p1 1a

d p1_ s *

d p ds based( p1_ )
d f1 10a
d f2 10a
d r3 5a

/free

return ;

begsr *inzsr ;
p1_ = %addr( p1 ) ;
endsr ;

/end-free



The result is debug-able and compatible with SQL precompiler.


On Fri, Oct 7, 2016 at 1:05 PM, Peter Dow <petercdow@xxxxxxxxx> wrote:

One final note - I didn't use Charles Wilt's simple method

<quote>
But why wouldn't you just use
d OB0050AN pi
d @RETURNCODE 2a
d @CALLER 10a
d PARMS likeds(@PARMS)
</quote>

because on v5r4 I can't define the template data structure with the
TEMPLATE keyword, which means it had to be QUALIFIED, and the SQL
pre-compiler can't handle qualified names as host variables, e.g. for the
following SQL

UPDATE myTable SET myColumn = :@PARMS.@MODE WHERE ...

the pre-compiler gives two errors, variable @PARMS undefined or unusable
and variable @MODE undefined or unusable.

I'm not sure if having the TEMPLATE keyword available would have allowed
me to use unqualified subfield names or not.

--
*Peter Dow* /
Dow Software Services, Inc.
909 793-9050
petercdow@xxxxxxxxx <mailto:petercdow@xxxxxxxxx>
pdow@xxxxxxxxxxxxxx <mailto:pdow@xxxxxxxxxxxxxx> /
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (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.

Please contact support@xxxxxxxxxxxx for any subscription related
questions.





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.