Subject Re: [IBO] Slow stuff
Author Joe Martinez
Thanks, Jason! Setting FetchWholeRows to True made all the difference!

I haven't upgraded to Hc yet. Again, was there something specific that was done
between Gc and Hc in this regard, or are you just recommending that I do it in
general for other reasons?

-Joe

Jason Wharton wrote:

> > 1) When a TTable is opened, what exactly is transferred to the client? I
> know
> > that it doesn't download all of the records, but does it at least get a
> list of
> > all the keys?
>
> Whatever records are needed to fill the buffers requested. It also depends
> on the mode you use. The possible modes you have to choose from is standard
> single cursor whole records mode where the buffer is monolithic and to get
> the last record all records must be fetched. The second possible mode
> accomplished by setting FetchWholeRows to false is you fetch all keys into
> the buffer when Last is called and then only the whole records needed to
> populate the buffers. The third possible mode is accomplished by having
> ascending and descending indexes and an IndexFieldNames setup accordingly.
> Then, IBO is able to use dual cursors so that navigating in the dataset can
> be accomplished more immediately, independent of the actual size of the
> dataset. When Last method is called it simply opens a cursor with descending
> order and immediately fetches records from the end of the dataset. If a seek
> or findkey is done on a value it used two cursors, one ascending, one
> descending to fetch the records most immediate to the sought record and
> finds it with minimal records fetched.