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



QCMDEXC supports three parms. Here is the prototype to call it:
D RunCmd          PR               EXTPGM('QCMDEXC')
D  cmdstr                  3000A   Const Options(*VarSize)
D  cmdlen                    15P 5 Const
D  cmdDbcs                    3A   Const Options(*NOPASS)

I no longer us this API, however since the C language's "system" proc is
just as good and doesn't require anything other than the command string.
See my (free) article on this topic at www.mcpressonline.com/midrangedev

Bob Cozzi
Cozzi Consulting
www.rpgiv.com


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of Bill Hopkins
Sent: Friday, October 24, 2003 2:07 PM
To: RPG programming on the AS400 / iSeries
Subject: RE: Starting out with sub-procedures

Isn't there a third parm?

Bill Hopkins





"John Taylor" <lists@xxxxxxxxxxxxxxxxxxxx>
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
10/24/2003 02:42 PM
Please respond to RPG programming on the AS400 / iSeries

 
        To:     "'RPG programming on the AS400 / iSeries'"
<rpg400-l@xxxxxxxxxxxx>
        cc: 
        Subject:        RE: Starting out with sub-procedures


Booth:

> Why does my new procedure that will run QCMDEXC need two 
> parms in?  Why can t I just send the command and let the new 
> procedure determine the command's length?

Because you haven't actually created a new procedure. You've simply
prototyped the external call to QCMDEXC, for the benefit of being able
to use an expression in the argument list.

Try the following instead:


      * prototype for QCMDEXC API
     DqCmdExc          pr                  extPgm('QCMDEXC')

     D  cmdStr                    32767a   const options(*varsize)
     D  cmdLen                       15p 5 const

      * prototype for basic procedure wrapping QCMDEXC
     DexecCmd          pr              n
     D  cmdStr                     1024a   const options(*varsize)

      * procedure wrapping QCMDEXC
     PexecCmd          b
     D                 pi              n

     D  iCmd                       1024a   const

     D
     C                   callp(e)  qCmdExc( iCmd:
     C                                      %len(%trim(iCmd)) )
     C                   if        %error
     C                   return    *off
     C                   else
     C                   return    *on
     C                   endif

     PexecCmd          e



Now your calling code only needs the following:

     C                   if        execCmd('CLRPFM FILE(MYFILE)')
     C                   return    'eureka'
     C                   endif


Now, that's just a basic start. There's a number of ways to improve
execCmd() yet.


Regards,

John Taylor

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

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.