• bBrowser and SQL delay question

    From Stavros Spanos@21:1/5 to All on Fri Mar 4 07:19:31 2022
    Hi all!!

    We are using a data bounded bBrowser connected with a VO SQLTable that handles a lot of data, code blocks etc.

    When we are moving from row to row (with mouse or keys), it seems that a data refreshing is going on, concerning the current record (actually the records seems to be re-read from original SQL Server when we move to it).

    This of course is very nice, but causes a delay of 2-3 second while we are browsing.

    We have 2 questions:

    • Is there a way to work more asynchronously? We need to browse without any interaction with the server and <Refresh All> when needed. Is there a way to do this?

    • Is there a – kind of – “granularity” concerning thw interaction between SQL Server / SQLTable / bBrowser?? It seems like the problem gets worse with Tables with 50000-100000 rows.

    Thanks in advance!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jamal@21:1/5 to Stavros Spanos on Fri Mar 4 16:53:44 2022
    Make sure bBrowser:AutoRefreshTime = 0

    and bBrowser:ServerType set to #SQL.

    From the docs: The bBrowser optimizes the access to the data server
    depending on the server type.

    Jamal


    On 3/4/2022 10:19 AM, Stavros Spanos wrote:
    Hi all!!

    We are using a data bounded bBrowser connected with a VO SQLTable that handles a lot of data, code blocks etc.

    When we are moving from row to row (with mouse or keys), it seems that a data refreshing is going on, concerning the current record (actually the records seems to be re-read from original SQL Server when we move to it).

    This of course is very nice, but causes a delay of 2-3 second while we are browsing.

    We have 2 questions:

    • Is there a way to work more asynchronously? We need to browse without any interaction with the server and <Refresh All> when needed. Is there a way to do this?

    • Is there a – kind of – “granularity” concerning thw interaction between SQL Server / SQLTable / bBrowser?? It seems like the problem gets worse with Tables with 50000-100000 rows.

    Thanks in advance!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stavros Spanos@21:1/5 to All on Tue Mar 8 00:59:21 2022
    Thanks for the reply Jamal!

    Unfortunatelly we do not need an Autorefresh(off). It is anyway by default. Our problem is that the bBrowser autamatically re-reads the current record from the SQLTable every time the current row changes (f.e. when clicking another row).

    We want this behaviour to stop because it leads to 2-3 seconds delay, something that confuses the user when browsing. So in a way we need to make the bBrowser work like "disconnected" to the Server.

    Stavros

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Stefan Ungemach@21:1/5 to stavros...@gmail.com on Tue Mar 8 04:48:55 2022
    stavros...@gmail.com schrieb am Dienstag, 8. März 2022 um 09:59:22 UTC+1:
    Thanks for the reply Jamal!

    Unfortunatelly we do not need an Autorefresh(off). It is anyway by default. Our problem is that the bBrowser autamatically re-reads the current record from the SQLTable every time the current row changes (f.e. when clicking another row).

    We want this behaviour to stop because it leads to 2-3 seconds delay, something that confuses the user when browsing. So in a way we need to make the bBrowser work like "disconnected" to the Server.

    Stavros

    Have you tried working with a timer? I.e. overwriting bBrowser:Notify, redirect NOTIFYRECORDCHANGE to some killtimer/settimer construct and calling super:Notify() via the Dispatch method of your subclassed bBrowser (for the appropriate WM_TIMER message).
    That would decouple all internal logic for a moment. Problem is the refresh of the selection, but you could at least start playing around in that direction.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dlzc@21:1/5 to stavros...@gmail.com on Tue Mar 8 07:47:51 2022
    On Friday, March 4, 2022 at 8:19:33 AM UTC-7, stavros...@gmail.com wrote:
    Hi all!!

    We are using a data bounded bBrowser connected with a VO SQLTable that handles a lot of data, code blocks etc.

    When we are moving from row to row (with mouse or keys), it seems that
    a data refreshing is going on, concerning the current record (actually the records seems to be re-read from original SQL Server when we move to it).

    Load the displayed fields, and a record number in a short table / array. Browse the "static" table, rather then the full DBF, record by record. Only call SQL to load / reload the table, when delays are expected. Do not allow editing of a record in the
    columnar display (unless you want to handle that).

    "Doctor, it hurts when I do this!"

    David A. Smith

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jamal@21:1/5 to Stavros Spanos on Tue Mar 8 12:59:22 2022
    Try using bBrowser:SuspendNotification() in the PostInit() method, then
    when you want to refresh, issue bBrowser:ResestNotification(), then bBrowser:Refresh(), then suspend again.

    Since notification calls are stacked, you may want to keep track via a
    variable if SuspendNotification is still active, because on Window
    close, you need to ResetNotification.

    HTH,
    Jamal

    On 3/8/2022 3:59 AM, Stavros Spanos wrote:
    Thanks for the reply Jamal!

    Unfortunatelly we do not need an Autorefresh(off). It is anyway by default. Our problem is that the bBrowser autamatically re-reads the current record from the SQLTable every time the current row changes (f.e. when clicking another row).

    We want this behaviour to stop because it leads to 2-3 seconds delay, something that confuses the user when browsing. So in a way we need to make the bBrowser work like "disconnected" to the Server.

    Stavros

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)