|
I do not need the cpyfrmqryf they are just Debug tools, they are commented out,
I an saying that they work fine but with them not there there RPGiV program
does not read any records, as if nothing was selected, I think it may somthing
to do with invocation levels, but I have never had a problem like
this in the past.
(Embedded
image moved Chris Bipes <ChrisB@cross-check.com>
to file: 29/09/99 20:12
pic26390.pcx)
Please respond to RPG400-L@midrange.com
To: "'RPG400-L@midrange.com'" <RPG400-L@midrange.com>
cc: (bcc: Nick Runnalls/BCTL/BurmahCastrol)
Subject: RE: OPNQRYF does not seem to be working
Once you cpyfrmqryf are at the end of file and once you reach end of file,
you cannot re-position the cursor. Why do you need the cpyfrmqryf? It is
best not to use this. If the RPG does not update and you need the cpy for
down stream processing, run the RPG first. The cpyfrmqryf will reposition
and copy correctly after the RPG ends and closes the file. To run the RPG
after the CPYFRMQRYF the cl must close the file, but then you lost the
opnqryf results. A catch 22. If your RPG is not updating you can also
close the qryf, override to the qtemp file and run your RPG. No share is
involved and you can get rid of that. Now for the killer, When you need a
copy of the file and need to update the file, have the RPG output the
original record to the qtemp file as you process but before you update any
fields. This output replaces the cpyfrmqryf and increases performance. You
must first create the qtemp file though. CRTDUPOBJ with DATA(*NO) works
great, once you have the library name. Use RTVOBJD *libl/objname *file
rtnlib(&lib) to get your library's name. I wish that IBM would change the
EOF indicator and allow you to reposition the file cursor after the
cpyfrmqryf. Though the above suggestion does out perform processing the
opnqryf twice.
Christopher K. Bipes mailto:ChrisB@Cross-Check.com
Sr. Programmer/Analyst mailto:Chris_Bipes@Yahoo.com
CrossCheck, Inc. http://www.cross-check.com
6119 State Farm Drive Phone: 707 586-0551 x 1102
Rohnert Park CA 94928 Fax: 707 586-1884
*Note to Recruiters
I nor anyone that I know of is interested in any new and/or exciting
positions. Please do not contact me.
-----Original Message-----
From: Nick_Runnalls@burmahcastrol.com
[mailto:Nick_Runnalls@burmahcastrol.com]
Sent: Wednesday, September 29, 1999 10:28 AM
To: RPG400-L@midrange.com
Subject: OPNQRYF does not seem to be working
I have the following CL Program
PGM PARM(&CUST &MAST &LANG)
DCL VAR(&CUST) TYPE(*DEC) LEN(8 0)
DCL VAR(&MAST) TYPE(*DEC) LEN(8 0)
DCL VAR(&CUSTA) TYPE(*CHAR) LEN(8)
DCL VAR(&LANG) TYPE(*CHAR) LEN(3)
DCL VAR(&QRYSEL) TYPE(*CHAR) LEN(128)
DCL VAR(&ZERO) TYPE(*DEC) LEN(8 0) VALUE(0)
/*------------------------------------------------------------------*/
/* Generic message monitor */
/*------------------------------------------------------------------*/
MONMSG MSGID(CPF0000 RPG0000 MCH0000)
CHGVAR VAR(&CUSTA) VALUE(&CUST)
CHGVAR VAR(%SST(&QRYSEL 1 10)) VALUE('CPMAST *EQ')
CHGVAR VAR(%SST(&QRYSEL 12 8)) VALUE(&MAST)
IF COND(&CUST *NE &ZERO) THEN(DO)
CHGVAR VAR(&QRYSEL) VALUE(&QRYSEL *CAT 'CPCLOC *EQ +
' *CAT &CUSTA)
ENDDO
OVRDBF LABCMPL1 SHARE(*YES)
OPNQRYF FILE((LABCMPL1)) OPTION(*INP) +
QRYSLT(&QRYSEL) KEYFLD(*FILE)
/* CPYFRMQRYF FROMOPNID(LABCMPL1) TOFILE(QTEMP/LABCMP) +
CRTFILE(*YES) */
CHGVAR VAR(%SST(&QRYSEL 1 10)) VALUE('SAMAST *EQ')
CHGVAR VAR(%SST(&QRYSEL 12 8)) VALUE(&MAST)
IF COND(&CUST *NE &ZERO) THEN(DO)
CHGVAR VAR(&QRYSEL) VALUE(&QRYSEL *CAT ' SACUST *EQ +
' *CAT &CUSTA)
ENDDO
OVRDBF LABMASL6 SHARE(*YES)
OPNQRYF FILE((LABMASL6)) OPTION(*INP) +
QRYSLT(&QRYSEL) KEYFLD((SAMAST) (SAUNIT) +
(SACOMT) (SALOCN) (SASAMP *DESCEND)) +
UNIQUEKEY(4)
/* CPYFRMQRYF FROMOPNID(LABMASL6) TOFILE(QTEMP/LABMAS) +
CRTFILE(*YES) */
/*------------------------------------------------------------------*/
/* Call Print */
/*------------------------------------------------------------------*/
CALL PGM(LBK0UPR) PARM(&CUST &MAST &LANG)
DLTOVR FILE(*ALL)
CLOF OPNID(LABCMPL1)
CLOF OPNID(LABMASL6)
ENDPGM
It is selecting no records in the RPG IV program (LBK0UPR).
If the commented out CPYFRMQRYF statements are run the data is selected
correctly in those files. Ihave tried using POSDBF
It does not help.
I have been through the archives and others are hinting at these problems.
The access paths were already shared open and i have tried removing the
OVRDBF commands none of it seems to make a diffrence. Am I going Mad. I
have used OPNQRYF much in the past, but with RPG III or 400 whatever
Anyone solved this
+---
| 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 mailing list archive is Copyright 1997-2025 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.