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



The short answer is NO.
VARYING with CONST means that the value you specify will be turned into a
temporary variable that is defined as a VARYING field. QCMDEXC does not
accept or know about that kind of data type, Therefore the call will fail
every time.
If you want to avoid using the length parameter, try the C runtime library's
'system' function. Here's the prototype for it.

     D system          PR            10I 0 ExtProc( 'system' )
     D  szCmd                          *   Value Options( *String )

You call it just like QCMDEXC (once QCMDEXC has been prototyped) except you
only have to pass the command string, as follows:

  C             callp   system('ADDLIBLE  cozzilib')

Let's look at the szCMD parm.

* means it is a pointer that is passed.
VALUE means the pointer value is passed by value instead of by reference.
OPTIONS(*STRING) means convert the value you specify into a C null
terminated string.

The combination * VALUE OPTIONS(*STRING) basically means you can specify any
character field or literal and the compiler converts that value into a C
null terminated string for you. A null terminated string is what the
'system' function requires. 

-Bob Cozzi


-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx [mailto:rpg400-l-bounces@xxxxxxxxxxxx]
On Behalf Of RPower@xxxxxxxxxx
Sent: Friday, November 05, 2004 9:30 AM
To: RPG programming on the AS400 / iSeries
Subject: Re: Prototype Calls

Sorry,

    d Cmd             s           3000A 

Should I use Varying here?

Ron Power
Programmer
Information Services
City Of St. John's, NL
P.O. Box 908
St. John's, NL
A1C 5M2
Tel: 709-576-8132
Email: rpower@xxxxxxxxxx
Website: http://www.stjohns.ca/
___________________________________________________________________________
Success is going from failure to failure without a loss of enthusiasm. - 
Sir Winston Churchill




MWalter@xxxxxxxxxxxxxxx 
Sent by: rpg400-l-bounces@xxxxxxxxxxxx
05/11/2004 11:49 AM
Please respond to
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>


To
RPG programming on the AS400 / iSeries <rpg400-l@xxxxxxxxxxxx>
cc

Subject
Re: Prototype Calls







If cmd is defined as VARYING, there is no need to use %trimR(). I don't 
see
the definition of CMD.

Thanks,

Mark

Mark D. Walter
Senior Programmer/Analyst
CCX, Inc.
mwalter@xxxxxxxxxx
http://www.ccxinc.com


|---------+----------------------------->
|         |           RPower@xxxxxxxxxx |
|         |           Sent by:          |
|         |           rpg400-l-bounces@m|
|         |           idrange.com       |
|         |                             |
|         |                             |
|         |           11/05/2004 10:13  |
|         |           AM                |
|         |           Please respond to |
|         |           RPG programming on|
|         |           the AS400 /       |
|         |           iSeries           |
|---------+----------------------------->
 
>---------------------------------------------------------------------------
-------------------------------------------|
  |                                               |
  |       To:       RPG programming on the AS400 / iSeries 
<rpg400-l@xxxxxxxxxxxx>                                       |
  |       cc:                                               |
  |       Subject:  Prototype Calls         |
 
>---------------------------------------------------------------------------
-------------------------------------------|




Ahem,
Writing a new program where I'm using QCMDEXC and I prototyped the call :)
 First time I've used this, and I have to say.  Very KOOL.  No more coding
Exsr over and over lol.  Be gentle it's my first one.

     D*--------------------------------------------------
     D* Procedure name: Qcmdexc
     D* Purpose:        To allow the running of CL commands
     D* Returns:
     D* Parameter:      Cmd => Command to run
     D* Parameter:      CmdLen => Length of command to run
     D*--------------------------------------------------
     D Qcmdexc         PR                  EXTPGM('QCMDEXC')
     D  Cmd                        3000A   Options(*VARSIZE) Const
     D  CmdLen                       15P 5 Const

     ?* Remove library for CoolSpools just in case already there
     c                   Eval      Cmd = 'RMVLIBLE LIB(CVTSPLV4R1)'
     c                   CallP(E)  QCmdExc(Cmd:%Len(%TrimR(Cmd)))

This is the correct way yes?


Ron Power
Programmer
Information Services
City Of St. John's, NL
P.O. Box 908
St. John's, NL
A1C 5M2
Tel: 709-576-8132
Email: rpower@xxxxxxxxxx
Website: http://www.stjohns.ca/
___________________________________________________________________________
Success is going from failure to failure without a loss of enthusiasm. -
Sir Winston Churchill


This e-mail communication and accompanying documents is intended only for
the individual or entity to which it is addressed and may contain
information that is confidential, privileged or exempt from disclosure
under applicable law.  Any use of this information by individuals or
entities other than the intended recipient is strictly prohibited.  If you
have received this in error, please notify the sender and delete all the
copies (electronic or otherwise) immediately.
--
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.




This e-mail communication and accompanying documents is intended only for
the individual or entity to which it is addressed and may contain
information that is confidential, privileged or exempt from disclosure under
applicable law.  Any use of this information by individuals or entities
other than the intended recipient is strictly prohibited.  If you have
received this in error, please notify the sender and delete all the copies
(electronic or otherwise) immediately.
--
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-Ups:
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.