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