|
Kewl. Thanks. I think I'll be using this a lot more now that I've gotten my feet wet. Amazing, been programming for 6 years but too afraid to try this because thought I'd screw it up. But it would seem that it's pretty easy to learn and use. I can see many ways to use this too for repetive functions that I currently use a subroutine for :). 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 "Bob Cozzi" <cozzi@xxxxxxxxx> Sent by: rpg400-l-bounces@xxxxxxxxxxxx 05/11/2004 12:26 PM 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 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. -- 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.
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.