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



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