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



Short answer:  You need to put quotes around the value of &SCAC.

Long answer:

The entire string will be assembled before sending it as a parameter to
opnqryf.  The best way to deal with problems like these is to put the
string together, and display what you've got and see if it's correct.

For example, you might do:

CHGVAR VAR(&FOO) VALUE('C1ADAT *GE ' *CAT +
                       &FRDAT *CAT ' *AND C1ADAT *LE ' *CAT +
                       &TODAT *CAT ' *AND C1SCAC *EQ ' *CAT +
                       &SCAC)


Then, use SNDMSG or something to display what's in &FOO.  You'd
have something like this:

   'C1ADAT *GT 20020102 *AND C1ADAT *LE 20020202 *AND C1SCAC *EQ TOWE'

Now maybe it's more clear where the problem is.   from opnqryf's
perspective, TOWE looks like another database field.   Numeric literals
don't look like fields, because field names can't begin with a number.
But, character literals must be in quotes, otherwise it thinks they're
field names.

So, you change you code to (I didnt test this):

CHGVAR VAR(&FOO) VALUE('C1ADAT *GE ' *CAT +
                       &FRDAT *CAT ' *AND C1ADAT *LE ' *CAT +
                       &TODAT *CAT ' *AND C1SCAC *EQ "' *CAT +
                       &SCAC *CAT '"')

And now the result would look like this:

   'C1ADAT *GT 20020102 *AND C1ADAT *LE 20020202 *AND C1SCAC *EQ "TOWE"'

Then, of course, you need to pass that complete string to OPNQRYF (which
is what you were doing before, you just couldn't see the intermediate
results since you did it all in one statement)

    OPNQRYF    FILE((CPP001)) QRYSLT(&FOO) KEYFLD((C1CODE) (C1ADAT))



On Wed, 18 Dec 2002 fkany@averittexpress.com wrote:
>
> Can anyone see what I'm doing wrong or missing out of OPNQRYF #2?
>
> ==================
> OPNQRYF #1 works:
> ==================
> OPNQRYF    FILE((CPP001)) QRYSLT('C1ADAT *GE ' *CAT +
>                                  &FRDAT *CAT ' *AND C1ADAT *LE ' *CAT +
>                                  &TODAT) KEYFLD((C1CODE) (C1ADAT))
>
> ===========================
> OPNQRYF #2 DOES NOT work:
> ===========================
> OPNQRYF    FILE((CPP001)) QRYSLT('C1ADAT *GE ' *CAT +
>                                  &FRDAT *CAT ' *AND C1ADAT *LE ' *CAT +
>                                  &TODAT *CAT ' *AND C1SCAC *EQ ' *CAT +
>                                  &SCAC) KEYFLD((C1CODE) (C1ADAT))
>
> Below is the error message from job dump:
>
> "Field TOWE on QRYSLT pa QQQBLQDT
>  parameter not found."
>
> TOWE is the value of &SCAC.  &SCAC is parameter being passed into the program.
>
> TIA,
>
> Frank



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.