× 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: "Stone, Brad V (TC)" <bvstone@xxxxxxxxxxxxxx>
  • Date: Fri, 31 Mar 2000 16:57:02 -0600

Chill... here's a pill!  ;)

You said:
> > > I would certainly PREFER to not pass the length -- but havent 
> > > found a good
> > > way.   What am I missing?

I assumed you were using ExtProc, or else I don't see why you would pass the
length parm.

Have you tried setting the file as USROPN, calling the override, then
opening the file?  I haven't, so I don't know if it will work.

Brad

> -----Original Message-----
> From: Scott Klement [mailto:klemscot@klements.com]
> Sent: Friday, March 31, 2000 3:06 PM
> To: 'RPG400-L@midrange.com'
> Subject: RE: CALLB vs.CALLP
> 
> 
> 
> 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
> +---
> 
+---
| 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 ...


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.