Subject RE: [IBO] How to perform async load on grid with IBOQuery
Author IBO Support List
IB Objects doesn't have the exact mechanism you are looking for. IB Objects fetches records on demand as the dataset navigates to them. If you want a dataset to be loading in all of its records you just call FetchAll. Then, if you have the CallbackInc property configured to allow for callbacks, you can continue to interact with your UI because between each record fetch there is a call to Application.ProcessMessages(). In this manner you aren't needing the complexity of actual asynchronous fetching. Rather, you are just using the main thread only because IB Objects is giving you the ability to fetch records and yield so that application messages can continue to be processed.
 
Even though you don't have the complexity of maintaining multiple threads, there is still some complexity to do things properly. Fortunately, most of the complexity is taken care of for you so you don't have to worry about it too much. For example, if you are in a FetchAll loop and then you have a button click that does a call to Close on that dataset the fetch all loop recognizes that it was interrupted and so it gracefully exits allowing the callstack to unwind without finishing up the fetch all request.
 
Perhaps you can give more information on what you are trying to do and I can give better advice.
 
Thanks,
Jason Wharton
 


From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]
Sent: Thursday, August 21, 2014 11:38 PM
To: IBObjects@yahoogroups.com
Subject: [IBO] How to perform async load on grid with IBOQuery

Hello, Iam new with IBO and try to perform large data load into db grid .

I found out that I can use the maxrows property to limit the amount of records fetched from server.


But I just can not figure how to perform the  "load another record on grid scroll", say I scroll down to the maxrows and the data provider should fetch another amount of record for the grid to load which will gives feeling that the grid really has a lot of data.


I saw this kind of feature in some application, for example IBExpert and others, but just don't know how to perform the operation.


The FAQ in IB FAQ has only so little information:


===================


I have about 10 million rows and want to filter them. The result could be also 10 million rows. How can I tell IBO to stop fetching at a position of 1000 rows and if the user scrolls the view down next 1000 will be transferred to the list?

Use the MaxRows property.


===================


Can anybody help me how to solve this.


Thanks.