Since Image places records Serially (unless there is a delete chain) there
is probably a very small chance that the same customer placed two orders one
right after another. In that case your test will almost always fail and
you'll have to do the Find and the Get. If you read all the entries first,
sort them by Cust# and then go through them again getting any additional
data, there is a greater likelihood that you will already have the record
you want in your buffer. And have to do less reading
John
> -----Original Message-----
> From: Simonsen, Larry [SMTP:[log in to unmask]]
> Sent: Monday, October 18, 1999 3:42 PM
> To: [log in to unmask]
> Subject: Re: Image Optimization
>
> Image will know that the record is possibly in memory and will do a search
> for it before it does a disc read. However your check will be much
> faster.
> Unless there are other fields which need to be retrieved which other
> people
> have updated your check will be the best.
>
>
> -------------------------------------------------
> Larry Simonsen Phone: 801-489-2450
> Flowserve Corporation Fax: 801-491-1750
> PO Box 2200 http://www.Flowserve.com
> Springville, UT 84663 e-mail: [log in to unmask]
> -------------------------------------------------
> All opinions expressed herein are my own and reflect, in no way, those of
> my
> employer.
>
> -----Original Message-----
> From: Jim Phillips [mailto:[log in to unmask]]
> Sent: Monday, October 18, 1999 3:42 PM
> To: [log in to unmask]
> Subject: Image Optimization
>
> Does Image optimize data access?
>
> What I have in mind is:
>
> I'm reading a data set of invoices that have the customer number in them.
> The primary key for the invoices is invoice number, and one invoice number
> pertains to only one customer number. I need to read the invoices serially
> because I'm selecting by invoice date, which is not a key item. As I'm
> reading the invoices, I need to jump out to the customer data set and get
> some info about the customer. Should I code something like this:
>
> DBGET Mode 2 Invoice
>
> If Invoice.Cust# <> Customer.Cust# then
> DBFIND Mode 1 Customer
> DBGET Mode 5 Customer
> End-If
>
> The purpose of this code is to eliminate an unnecessary DBFIND/DBGET to
> the
> customer data set if that customer's record is already in memory. What I
> want to know is should I code this, or does Image do something like this
> already? IOW, if I do the DBFIND/DBGET every single time, am I wasting
> resources by forcing Image to re-read a record that may be in memory
> already, or is Image smart enough to not do the record retrieval if the
> record is already in memory?
>
> Thanks, as always, for any assistance.
>
> Jim Phillips Manager of Information Systems
> E-Mail: [log in to unmask] Therm-O-Link, Inc.
> Phone: (330) 527-2124 P. O. Box 285
> Fax: (330) 527-2123 Garrettsville, Ohio 44231
|