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



Well I got to reading some more while coding something else so I could be 
off but this is what I think.
 
Don't want to use %size(QCMD) because thats 3002. 

CONST
The parameter is passed by "read-only reference"(Need because calling 
program). A parameter defined with CONST must not be modified by the 
called program or procedure(It doesn't). This parameter-passing method 
allows you to pass literals and expressions(I have built with Eval). 

*varsize "The parameter may contain less data than is indicated on the 
definition.(I 
want this - Eval changes length of QCMD literial) This keyword is valid 
only for character parameters(Have this), graphic parameters, UCS-2 
parameters, or arrays passed by reference. The called program or procedure 
must have some way of determining the length of the passed 
parameter.(%len(QCMD) does this on second parm Len)"

For Value question found answer in archive thanks Scott K.
LEN 15S 5 needs to be a CONST because "When calling a PROGRAM 
"(EXTPGM(QCMDEXC)is a program)" (as opposed to a 
procedure) you MUST pass by reference.   CONST is allowed, as that it is still 
by reference." 

Look for "parameters - const, value, reference" in  archive alot better than me 
at explaining.

Thanks 
Bill Hopkins

 

 
 




Hans Boldt <boldt@xxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
08/20/2003 03:21 PM
Please respond to RPG programming on the AS400 / iSeries

 
        To:     rpg400-l@xxxxxxxxxxxx
        cc: 
        Subject:        Re: QCMDEXC on v5r1


Bill Hopkins wrote:

>  * 
> D Qcmdexc         pr                  Extpgm('QCMDEXC') 
> D  Cmd                                Like(Qcmd) Options(*Varsize) Const
> D  Len                          15p 5 
> D  Opt                           3    Options(*NoPass) Const 
> 
> D Qcmd            s           3000 
> 
> 
> Later in code
> 
>  * 
> C                   Eval      Qcmd = 'CPYTOIMPF FROMFILE(FXC'+ 
> C                             ')TOSTMF(''qdls/forcastx/fxc.t'+ 
> C                             'xt'') MBROPT(*REPLACE) STMFCO'+ 
> C                             'DPAG(*PCASCII) CDDLM(*OPT(*RE'+ 
> C                             'PLACE) STMFCODPAG(*PCASCII) C'+ 
> C                             'DDLM(*CR) DTAFMT(*DLM) STRDLM'+ 
> C                             '(*NONE) FLDDLM(X''05'')' 
>  * 
> C                   CallP     Qcmdexc(Qcmd:%Len(%Trim(Qcmd))) 
> 
> 
> *RNF7542 30      1 Parameter cannot be passed by reference when it can 
be
>                    changed during the call. 
> 
> 
> 
> Thought I had seen something like this on list a few times, did I miss 
> something, or is this v5r2.
> I'm at v5r1.
> 

Add keyword CONST to parameter LEN. As coded, LEN is passed by 
reference, but you need to specify a variable name for a reference parm.

Cheers! Hans


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