If the key is unique I use chain. If you're looking for the current price
   like below, I would suggest two keys;
   1. with the date using todays date for the setll and
   2. without the date for the reade.
   That should handle future price records.
   Regards,
   Guy
   Inactive hide details for "Erhardt, Bill"
   <Bill.Erhardt@xxxxxxxxx>"Erhardt, Bill" <Bill.Erhardt@xxxxxxxxx>
               "Erhardt, Bill"               To: "RPG programming on the      
               <Bill.Erhardt@xxxxxxxxx>      AS400 / iSeries"                 
               Sent by:                      <rpg400-l@xxxxxxxxxxxx>          
               rpg400-l-bounces@xxxxxxxxxxxx cc:                              
                                             Subject: RE: Chain vs            
               09/02/2008 10:12 AM           SetLL/ReadE                      
               Please respond to RPG         
               programming on the AS400 /    
               iSeries                       
   I'm sure this topic will bring many responses.  The reason I use Setll
   and Reade instead of Chain is I'm never sure what my users will do the
   db.  Chain returns the 1st record found that matches the keylist values
   used is factor 1.  In some cases this may not be the record you are
   expecting.  For example we have a table that hold price information.
   The table is keyed by part number and the price effectivity date in
   descending sequence.  So, one may assume that a chain to the table with
   a part number would return the most current price.  And it does as long
   as no one adds a price record with a future date.  I hope this is an
   indication why using the setll/reade construct can be better then using
   the chain function.
   -----Original Message-----
   From: rpg400-l-bounces@xxxxxxxxxxxx
   [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Chandra Krieg
   Sent: Tuesday, September 02, 2008 9:34 AM
   To: 'rpg400-l@xxxxxxxxxxxx'
   Subject: Chain vs SetLL/ReadE
   Hello all,
   I have been told that the preferred method of random record retrieval is
   to use the SetLL, then do a ReadE and check for the %EOF indicator.  
   Why is this preferred over using a Chain with %found or even checking
   for %Equal on the SetLL before reading the file?  I have been told that
   the Chain doesn't do what I'm expecting it to but I've never had issues
   in the past.
   I have read the archive posts and found opinions on the subject but no
   concrete explenation as to why.  As with some of the posts I don't
   understand why you would want to readE the file if the SetLL didn't find
   an %equal match or why if you plan to read the file a chain isn't
   appropriate.
   I'm being told to use the following code instead of a Chain.
   SetLL (KeyFields) FIleName;
   ReadE (KeyFields FIleName;
   DoW Not %EOF(FIleName);
   do my stuff
   ReadE (KeyFields) FileName;
   EndDo;
   Any explanations would be helpful!
   TIA!
   Chandra Krieg
   i5 Programmer/Analyst
   RateWatch
   (P) 1.800.348.1831 ext 311
   (F) 1.920.568.1403
   www.rate-watch.com
   --
   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.
   -------------------------------------------------------------------------------
   The information contained in and transmitted with this e-mail may be
   privileged, proprietary, confidential and protected from disclosure. No
   privilege is hereby intended to be waived. This e-mail is intended only
   for the person to whom it is addressed. If you are not the intended
   recipient/addressee, any use of the e-mail and/or its contents, including,
   but not limited to, dissemination, distribution or copying is strictly
   prohibited and may be unlawful, and you must not take any action in
   reliance on it. If you receive this e-mail in error, please immediately
   notify the sender and delete the original message and any copies of it
   from your computer system. We deny any liability for damages resulting
   from the use of this e-mail by the unintended recipient, including the
   recipient in error.
As an Amazon Associate we earn from qualifying purchases.