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



Is the large table ordered enough so that you can check to see if you
need to chain to the support table.

So...
If Dbfield <> Wkfield;
Chain Dbfield SupportTable;
Wkfield = Dbfield;
Endif;


An array would have to be defined to be as large as possible and
possibility it will be too small. Yes you can dynamically enlarge
array's but if you can get away with the about code and cut at least in
half the I/O on the support table then I say it's a win.

Thanks, Matt

-----Original Message-----
From: rpg400-l-bounces@xxxxxxxxxxxx
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Kurt Anderson
Sent: Thursday, November 10, 2011 10:09 AM
To: RPG programming on the IBM i / System i (rpg400-l@xxxxxxxxxxxx)
Subject: %lookup on a Data Structure Array

I'm trying to reduce some program I/O for program processing millions of
records. I've identified a file that I feel could be loaded into an
array instead of having the program chain out for every record. Usually
this file is between 100-1000 records. However one of our clients has
20,000 records in the file. So before making the change, I decided to
do a little reading on %lookup, to make sure I'd be using it correctly.
http://www.ibmsystemsmag.com/ibmi/developer/rpg/iSeries-EXTRA--Look-Befo
re-You--Lookup/

It turns out that I had misunderstood how to trigger the binary search
with a %lookup. I thought sorting the array was enough, however to get
the binary search one needs to explicitly specify Ascend or Descend on
the array.

So I went to add Ascend to a data structure array, and it won't let me:
D ds_Cust DS Qualified Inz Dim( 50000 )
Ascend
D Cust 3p 0
D Cycle 1a
Error: RNF3501E Keyword is not allowed for a data-structure definition;
keyword is ignored.

I tried adding the Ascend keyword to the subfield that I use in the
lookup, but it doesn't like that either (I wasn't expecting this to
work, but at this point I'm grasping at straws).

I suppose I could make these two fields their own arrays. Though I'm
not really a fan of that. I love using data structures to group
like-data together.

Is there any way to get the new data structure array lookups to use a
binary search?

Kurt Anderson
Sr. Programmer/Analyst
CustomCall Data Systems


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.