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