|
OK Bob... Here's 90% of your problem: In your QRYSLT you have *AND GTDIV *EQ "' *CAT &DIV *TCAT '" Anything in quotes is considered TEXT... Change it to look similar to this: *AND GTDIV *EQ &DIV What's happening is the query engine is looking for the value of GTDIV to be equal to *CAT &DIV *TCAT which I'm sure is not what you're after... Also as suggested many times....it's easier to debug when you load the QRYSLT into a variable. Another thing why qualify all your commands to QSYS??? It's kinda pointless.... Thanks, Tommy Holden -----Original Message----- From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of Bob O. Sent: Tuesday, August 22, 2006 9:05 AM To: midrange-l@xxxxxxxxxxxx Subject: Re: PROBLEM WITH OPNQRYF Ok Ken, I I added the quotes like you said. When I run the program I am still getting the CPF9899 error message saying that I'm missing an operand. I can't see where I'm missing anything. PGM QSYS/DCL VAR(&DIV) TYPE(*CHAR) LEN(1) QSYS/DCL VAR(&BOOK) TYPE(*CHAR) LEN(6) /* */ QSYS/CALL PGM(DOR400/GL270A) QSYS/RTVDTAARA DTAARA(*LDA (9 6)) RTNVAR(&BOOK) QSYS/RTVDTAARA DTAARA(*LDA (15 1)) RTNVAR(&DIV) /* */ QSYS/OVRDBF FILE(GLTRAN) SHARE(*YES) QSYS/OPNQRYF FILE((DOR400/GLTRAN)) QRYSLT(' + GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3120 + *AND GTSOUR *EQ "BI" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3140 + *AND GTSOUR *EQ "BI" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3150 + *AND GTSOUR *EQ "BI" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3170 + *AND GTSOUR *EQ "BI" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3190 + *AND GTSOUR *EQ "BI" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3300 + *AND GTSOUR *EQ "BI" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3120 + *AND GTSOUR *EQ "AR" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3140 + *AND GTSOUR *EQ "AR" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3150 + *AND GTSOUR *EQ "AR" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3170 + *AND GTSOUR *EQ "AR" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3190 + *AND GTSOUR *EQ "AR" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '" + *OR GTBDTE *EQ ' *CAT &BOOK *CAT ' + *AND GTACCT *EQ 3300 + *AND GTSOUR *EQ "AR" + *AND GTDIV *EQ "' *CAT &DIV *TCAT '"') + KEYFLD((GTREF)) ---------------------------------------------------------------------- From: "rick baird" <rick.baird@xxxxxxxxx> Reply-To: Midrange Systems Technical Discussion <midrange-l@xxxxxxxxxxxx> To: "Midrange Systems Technical Discussion" <midrange-l@xxxxxxxxxxxx> Subject: Re: PROBLEM WITH OPNQRYF Date: Fri, 18 Aug 2006 16:47:08 -0400 >Ken, exactly. > >and just to clarify, the CL variable (&DIV) must be an alpha variable >to concatenate, regardless if the file variable is alpha or numeric. > >On 8/18/06, Ken Sims <mdrg5003@xxxxxxxxxxx> wrote: > > Hi Bob - > > > > > First off, I thought *CAT is used only for numeric variable. &DIV is a > > > one character field as is the GTDIV field in the file. > > > > > > Second, If I take out the lines with: > > > > > > *AND GTDIV *EQ &DIV > > > > You have to use *CAT (or *BCAT or *TCAT) for any kind of variable so that > > the contents of the variable are substituted into the select. > > > > Numeric: > > > > ... *AND FIELD *EQ ' *CAT &NUMBER *CAT ' ... > > > > Character: > > > > ... *AND FIELD *EQ "' *CAT &ALPHA *CAT '" ... > > > > Note the double quotes on either side of the concatenated value for > > character fields. You could also use a pair of single quotes but the > > double quotes are much nicer to work with. > > > > Ken > > http://www.kensims.net/ > > Opinions expressed are my own and do not necessarily represent the views > > of my employer or anyone in their right mind. > > > > -- > > This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list > > To post a message email: MIDRANGE-L@xxxxxxxxxxxx > > To subscribe, unsubscribe, or change list options, > > visit: http://lists.midrange.com/mailman/listinfo/midrange-l > > or email: MIDRANGE-L-request@xxxxxxxxxxxx > > Before posting, please take a moment to review the archives > > at http://archive.midrange.com/midrange-l. > > > > >-- >This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list >To post a message email: MIDRANGE-L@xxxxxxxxxxxx >To subscribe, unsubscribe, or change list options, >visit: http://lists.midrange.com/mailman/listinfo/midrange-l >or email: MIDRANGE-L-request@xxxxxxxxxxxx >Before posting, please take a moment to review the archives >at http://archive.midrange.com/midrange-l. >
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.