|
Then you must incorporate something like late-bound copy to convert numeric
values.... Code was originally posted by Carsten Flensburg.
** See QSYSINC/MIH.MICPTCOM
D T_SIGNED C x'00'
D T_FLOAT C x'01'
D T_ZONED C x'02'
D T_PACKED C x'03'
D T_UNSIGNED C x'0A'
**
D DPA_Template_T Ds Based( pDPA )
D SclTyp 1a
D RcvLen 5i 0
D DecPos 3i 0 Overlay( RcvLen: 1 )
D TotDig 3i 0 Overlay( RcvLen: 2 )
D Rsv 10i 0
** Late bound copy numeric variable:
D LBCPYNV Pr ExtProc( '_LBCPYNV' )
D Target * Value
D Target_Tpl Const Like( DPA_Template_T )
D Source * Value
D Source_Tpl Const Like( DPA_Template_T )
** Late bound copy numeric variable - with rounding:
D LBCPYNVR PR extproc( '_LBCPYNVR' )
D Target * Value
D Target_Tpl Const Like( DPA_Template_T )
D Source * Value
D Source_Tpl Const Like( DPA_Template_T )
**
D SrcTpl s Like( DPA_Template_T )
D TgtTpl s Like( DPA_Template_T )
**
D SrcDs Ds
D Fields25 25a
D P12_3 12p 3 Inz( -12345678.915 )
D TgtDs Ds
D Fields38 38a
D S11_2 11s 2
**
D Msg s 52a
**
C Eval pDPA = %Addr( SrcTpl )
C Eval SclTyp = T_PACKED
C Eval TotDig = 12
C Eval DecPos = 3
C Eval Rsv = 0
**
C Eval pDPA = %Addr( TgtTpl )
C Eval SclTyp = T_ZONED
C Eval TotDig = 11
C Eval DecPos = 2
C Eval Rsv = 0
**
C CallP LBCPYNVR( %Addr( TgtDs ) + 38
C : TgtTpl
C : %Addr( SrcDs ) + 25
C : SrcTpl
C )
**
C Eval Msg = %char( P12_3 ) + ' --> ' +
C %char( S11_2 )
**
C Msg Dsply
**
C return
**
Eric DeLong
Sally Beauty Company
MIS-Project Manager (BSG)
940-898-7863 or ext. 1863
-----Original Message-----
From: Bob cozzi [mailto:cozzi@xxxxxxxxx]
Sent: Wednesday, October 15, 2003 10:46 AM
To: 'RPG programming on the AS400 / iSeries'
Subject: RE: Help with parameter passing
You simply (simply?) pass the variable using the %ADDR built-in so the
prototype doesn't know what kind of variable it is.
Then you also need to pass additional parameters that describe the variable
to the proc so that you don't screw up the storage and have a learning
experience.
Bob Cozzi
Cozzi Consulting
www.rpgiv.com
-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Brian Parkins
Sent: Wednesday, October 15, 2003 10:02 AM
To: RPG programming on the AS400 / iSeries
Subject: Re: Help with parameter passing
Scott, you said in an earlier append:
"...Anyway, the hard part .... is ... going to be figuring
out how to write RPG code that works with any possible variable type, with
any possible length and any possible number of decimal places. That'll
be a lot of work.
It's doable though... I've done it.."
This is EXACTLY what's require for Embedded SQL when processing Dynamic
Varying List SELECT statements.
Care to share?
Brian Parkins
_______________________________________________
This is the RPG programming on the AS400 / 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.
_______________________________________________
This is the RPG programming on the AS400 / 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.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.