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


  • Subject: RE: CALLB vs.CALLP
  • From: Scott Klement <klemscot@xxxxxxxxxxxx>
  • Date: Fri, 31 Mar 2000 15:06:13 -0600 (CST)


Huh?   I wasn't using ExtProc...  nor did I say anything about it in my
message... 

I was talking about the fact that if I make a subprocedure to do QCMDEXC
(exactly like the example that you gave below) it doesnt work properly for
OVRDBF (or OVRxxx) because the subprocedure appears to operate on a 
different call level than the main program...

What does this have to do with ExtProc?!



On Fri, 31 Mar 2000, Stone, Brad V (TC) wrote:

> The idea is to build your own subprocedure with your own parms.  You don't
> need to use EXTPROC.  I've never done it.
> 
> It would be something like this...
> 
>      D #QCmdExc        PR
>      D   PR_Cmd                    1024    VALUE
>       *//////////////////////////////////////////////////////////////*
>      P #QCmdExc        B                   EXPORT
>       *--------------------------------------------------------------*
>      D #QCmdExc        PI
>      D  Cmd                        1024    VALUE
>       *
>      D CmdLen          S             15P 5 INZ(%size(Cmd))
>       *--------------------------------------------------------------*
>      C                   CALL      'QCmdExc'
>      C                   PARM                    Cmd
>      C                   PARM                    CmdLen
>        *--------------------------------------------------------------*
>      P #QCmdExc        E
>       
> That's one reason why I don't like examples that always use EXTPROC because
> it doesn't teach you how subprocedures work.  It just gives you code to use.
> then when you want to write your own subprocedures, you don't know where to
> start.
> 
> Brad
> 
> > -----Original Message-----
> > From: Scott Klement [mailto:klemscot@klements.com]
> > Sent: Friday, March 31, 2000 1:06 PM
> > To: 'RPG400-L@midrange.com'
> > Subject: RE: CALLB vs.CALLP
> > 
> > 
> > 
> > The problem I always have with using a subprocedure as a wrapper for
> > QCMDEXC is the call level.   When I do an OVRDBF or similar command
> > via my subprocedure, it doesn't work because its at a different call
> > level.
> > 
> > Sure, I could do OVRSCOPE(*JOB)  but thats not a very elegant 
> > solution!
> > 
> > So, I usually do a prototype with a CONST parameter for the 
> > command and
> > the length.  Then I can do something like this:
> > 
> > C               callp     Cmd('OVRDBF FILE(FILEONE) 
> > TOFILE(FILETWO)': 200)
> > 
> > I would certainly PREFER to not pass the length -- but havent 
> > found a good
> > way.   What am I missing?
> > 
> > 
> > 
> > 
> > On Fri, 31 Mar 2000, Stone, Brad V (TC) wrote:
> > 
> > > I never understood this example, and I've seen it from a 
> > lot of people.  If
> > > you're making a subprocedure, prototype it so you only send 
> > the command.
> > > Not the length.  You can define the length as %size(Command) in the
> > > Subprocedure.
> > > 
> > > Then, you only need to do..
> > > 
> > > CALLP     #QcmdExc('CLRPFM FILE1')
> > > 
> > > Much easier.  And only 2 more seconds of setup.
> > > 
> > > Other times you will definatly want to do this when making 
> > wrappers for
> > > APIs.  Sometimes they have a lot of parms you don't need to 
> > pass.  The
> > > command length on QCMDEXC is one of them.
> > > 
> > > Brad
> > 

+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


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.