Subject RE: [IBO] Paradox conversion
Author IBO Support List
You can configure this feature even on a TIBOQuery but it takes a bit of
extra work.
The way you do it is you add an entry to the OrderingLinks property.

What may have been configured as this:

MYCOL=1

Can be entered as this:

MYCOL=ITEM=1;POS=0

And, in the OrderingItems, you need to have both the ascending and
descending ORDER BY criteria entered. Also, you should have indexes
supporting those defined in your database.

Hope this helps,
Jason Wharton
www.ibobjects.com


-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]
Sent: Thursday, August 7, 2014 8:12 PM
To: IBObjects@yahoogroups.com
Subject: Re: [IBO] Paradox conversion

Hi

Thanks for the detailed reply. Unfortunately it must be a query (not a
table) because it the user can add in / remove fields at run time. The
database has been restructured to a 'proper' normalised structure and
now supports functionality the old system could not. I just need to
have it fast enough that the client doesn't feel it is 'slow'.

I have managed to get some additional performance by removing an index !

The client will be in in an hour so I will see what happens :)

Cheers
Rob


On 8/08/2014 12:43 p.m., 'IBO Support List' supportlist@...
[IBObjects] wrote:
> Rob,
>
> If you use a TIBOTable and you have both ascending and descending indexes
on
> the IndexFieldNames column entries then you will be able to virtualize the
> dataset and have paradox-like scrolling performance. IBO will
automatically
> employ what is called horizontal dataset refinement.
>
> It is true that they lose the accurate scrollbar, but that is unavoidable.
I
> think they will be ok with that since it does dynamically adjust as
records
> are brought into the buffer. IBO simply buffers all the records they have
> fetched into the dataset. I don't have a way to cycle old records out. You
> simply just call InvalidateRows if you want the buffer purged to reclaim
> memory without interfering with the operations of the dataset. In other
> words, critical buffer entries will be preserved. For example, if you have
> cached updates, those will remain.
>
> When horizontal dataset refinement is in action then your calls to
Locate()
> will be very fast as well. It will not cause an auto-fetch-all type
action.
> It will simply move the record pointer to the middle of the dataset and
you
> will have a cursor to bring in more records if you scroll in either
> direction. If you call the Last method it simply starts fetching records
> towards BOF and doesn't have to fetch in the entire dataset.
>
> IBO gets you as close to flat file performance as is possible so go for it
> and let us know how it goes. I'll be standing by to help you if you get
hung
> up.
>
> Jason
> www.ibobjects.com
>
>
> -----Original Message-----
> From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]
> Sent: Thursday, August 7, 2014 6:08 PM
> To: IBObjects@yahoogroups.com
> Subject: [IBO] Paradox conversion
>
> Hi
>
> I am re building some extremely old software to use Firebird instead of
> Paradox. The user is obsessed with performance and wants the new system
> to be as good as the old system. The old system was a flat table that
> copied data locally to the HDD at startup to give best performance so it
> is tricky to match that sort of performance.
>
> Anyway the issue I have is that the user wants the scrollbar to
> accurately represent the position in the table. To do this AutoFetchAll
> must be enabled (correct?). Enabling this means that sometimes 110,000
> records need to be populated, which even with FB 2.5 on my local
> machine, takes 2 and a bit seconds. I can massively improve performance
> by disabling the auto fetch all, however when the user tries a
> progressive search (using .locate()) the system has to fetch all the
> records and it is slow for the first search.
>
> I think I can convince the user to do away with the accurate scrollbar
> if I can convince him of the benefits. I am using TIBOQuery.
>
> My questions
>
> 1. Is there a way to run without AutoFetchAll where the data will
> display quickly and then continue downloading the data without stopping
> the app?
>
> 2. Setting RecordCountAccurate to False when AutoFetchAll is false
> gives a a scrollbar that updates with use. Does it also improve
> performance?
>
> 3. Can I increase the amount of records buffered when AutoFetchAll is
> false. If so I could do a halfway house, where not all records are
> buffered but more than default, so that when a progressive search starts
> it is faster.
>
> 4. Any other performance suggestions. I know it is hard for a
> relational db to compete with a flat file db with regards to strait grid
> display?
>
> p.s. The query is in a readOnlyTransaction and is set to readonly. The
> SQL is dynamically created and set in code.
>
> Cheers
> Rob
>
>
>
> ------------------------------------
> Posted by: Robert Martin <rob@...>
> ------------------------------------
>
>
___________________________________________________________________________
> IB Objects - direct, complete, custom connectivity to Firebird or
InterBase
> without the need for BDE, ODBC or any other layer.
>
___________________________________________________________________________
> http://www.ibobjects.com - your IBO community resource for Tech Info
papers,
> keyword-searchable FAQ, community code contributions and more !
> http://tracker.ibobjects.com - your portal to submit and monitor bug
reports
> http://community.ibobjects.com - your portal to purchase and upgrade
> ------------------------------------
>
> Yahoo Groups Links
>
>
>
>
>
> ------------------------------------
> Posted by: "IBO Support List" <supportlist@...>
> ------------------------------------
>
>
___________________________________________________________________________
> IB Objects - direct, complete, custom connectivity to Firebird or
InterBase
> without the need for BDE, ODBC or any other layer.
>
___________________________________________________________________________
> http://www.ibobjects.com - your IBO community resource for Tech Info
papers,
> keyword-searchable FAQ, community code contributions and more !
> http://tracker.ibobjects.com - your portal to submit and monitor bug
reports
> http://community.ibobjects.com - your portal to purchase and upgrade
> ------------------------------------
>
> Yahoo Groups Links
>
>
>
>
>
> -----
> No virus found in this message.
> Checked by AVG - www.avg.com
> Version: 2014.0.4744 / Virus Database: 3986/8000 - Release Date: 08/07/14
>
>



------------------------------------
Posted by: Robert Martin <rob@...>
------------------------------------

___________________________________________________________________________
IB Objects - direct, complete, custom connectivity to Firebird or InterBase
without the need for BDE, ODBC or any other layer.
___________________________________________________________________________
http://www.ibobjects.com - your IBO community resource for Tech Info papers,
keyword-searchable FAQ, community code contributions and more !
http://tracker.ibobjects.com - your portal to submit and monitor bug reports
http://community.ibobjects.com - your portal to purchase and upgrade
------------------------------------

Yahoo Groups Links