SmartQuery and NonBlocking

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
andrefm
Posts: 37
Joined: Wed 23 Oct 2013 10:02

SmartQuery and NonBlocking

Post by andrefm » Wed 23 Oct 2013 10:06

Hi,
Can someone confirm that SmartQuery also work with "NonBlocking"?
I made a simple test and the GUI will not freeze with OraQuery, but it's freezing using SmartQuery.
The version used is the latest.
Thx
Andre

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: SmartQuery and NonBlocking

Post by AlexP » Wed 23 Oct 2013 10:54

Hello,

We cannot reproduce the problem. The NonBlocking mode works correctly in both OraQuery and SmartQuery. Please send a small sample (including the table creation script) demonstrating the problem to alexp*devart*com

andrefm
Posts: 37
Joined: Wed 23 Oct 2013 10:02

Re: SmartQuery and NonBlocking

Post by andrefm » Wed 23 Oct 2013 19:45

Hi Alex,

Sorry, it was my mistake. The FETCHALL property for the SmartQuery was FALSE and not TRUE compared with the OraQuery in my sample application.

For me it was also not clear that the NonBlocking is linked to the FetchRows property. If the FetchRows property is small and amount of rows to retrieve is high, then the application will be more responsive. But if the FetchRows is high and the amount of rows is also high (and the connection is slow e.g. via VPN), then the main thread will be blocked till it retrieve the first amount of Rows defined at FetchRows.
Initially I thought that using NonBlocking, ALL rows would be retrieved via a separate thread, but it seems that the first "batch" of rows is not done via the separate thread. Could you please let me know if there is a way for all rows to retrieved in a separate Thread? Or is there any particular reason for this type of implementation (first amount retrieved normally in main thread and all remaining rows in separate)?
Thank you

Andre

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

Re: SmartQuery and NonBlocking

Post by AlexP » Thu 24 Oct 2013 08:56

Hello,

If the FetchAll property is set to False, then only the first block of records is read out in a separate thread, others are read out in the main thread of an application. We will consider the possibility to modify this behaviour.

Post Reply