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



Well, I can't find the original RPG processing cycle
chart that was in the System/3 RPG manual anywhere on
the net. But HP has their manual online at this
address
http://docs.hp.com/cgi-bin/doc3k/B3031890001.10422/7

It explains how the data buffers are looked at for
matching records and look ahead fields prior to the
record data being transferred to the record fields. I
remember consulting the IBM version of this frequently
when a I was a newbie in 1976.

--- Jerry Adams <jerry@xxxxxxxxxxxxxxx> wrote:

Luv ya, Booth, but you're wrong this time. Only one
indicator from a
Primary/Secondary file set can be on at a time.
Somehow the compiler
"knows" that there's a matching set in the two
files. I started to say
"pair" instead of set, but either file (though
usually the secondary the
way I code) may have multiple records that satisfy
the match. For
example an order header being matched against an
order line file solely
on order number. The line file will (hopefully)
have 1-n matches
against the header.


Say, anyone game for Look Ahead processing?


* Jerry C. Adams
*IBM System i Programmer/Analyst
B&W Wholesale Distributors, Inc.* *
voice
615.995.7024
fax
615.995.1201
email
jerry@xxxxxxxxxxxxxxx
<mailto:jerry@xxxxxxxxxxxxxxx>



Booth Martin wrote:
hmmm... I don't read the manual well enough
sometimes, but I believe
that the MR indicator, and the file processing,
is such that the next
02 is always there, and known. Otherwise there
would be no way for the
program to know which record to grab next. In
other words, when MR is
on, then 01 and 02 are also on. If there is one 01
record and 5 matching
02 records, then MR will stay on while all six
records are processed. If
MR is off then we know we have a widow or an
orphan.

Then again I could be wrong as heck. :)



Joe Pluta wrote:

From: Booth Martin

Why not select?

select
when *INMR and FILE1DS = FILE2DS
* (do nothing)
when *INMR
write MR_Diffs
when *IN01
write NMR_01
when *IN02
write NMR_02
endsl

Isn't that about all of the choices that there
are?


Close, except the comparison of non-key fields is
only valid when both
records are read in, which only happens when
*IN02 is on.



select
when *IN01 and not *INMR
write NMR_01
when not *INMR // *IN02
is implied
write NMR_02
when *IN02 and FILE1DS <> FILE2DS // *INMR
is implied
write MR_Diffs
endsl


You ignore primary matching records entirely
because you can't see the
secondary fields yet. You only process secondary
records if the data fields
don't match.

Joe






--
This is the RPG programming on the AS400 / iSeries
(RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the
archives
at http://archive.midrange.com/rpg400-l.





As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
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.