Page 1 of 1
Refresh dataset
Posted: Thu 20 Nov 2008 18:32
by burdian
Hi,
UniQuery with standard DBGrid.
UniQuery.SQL = 'select * from TAB1 order by ID'
UniQuery.SpecificOptions.FetchAll = False or True.
TAB1 must have enough records for some grid pages.
With Firebird and Oracle:
after UniQuery.Refresh selected row become first or last row on the grid page.
No problems with MSSQL.
TIA and Best regards
Branko
Posted: Fri 21 Nov 2008 11:19
by Plash
This is the normal behaviour of dataset because the Resync method is called during refresh. If we remove this call, the problems may occur (such as access violation).
Posted: Fri 21 Nov 2008 13:26
by burdian
Hi,
Plash wrote:This is the normal behaviour of dataset because the Resync method is called during refresh. If we remove this call, the problems may occur (such as access violation).
No, Resync method should not be removed! You should investigate how procedure GetRecord is implemented (how it gets prior, current next record in this situation).
We have tested this with standard DBGrid.
Just drop DbGrid, DbNavigator, UniQuery, DataSource. Run application
and click Refresh button in DbNavigator on some record in the middle
of DbGrid (table should have 50 or more records).
You get:
1. scroll bar disappear
2. selected record in the middle of grid becomes first record
When provider is MSSQL then it works perfect, as expected !!!!
You will not see this with BDE or some other components.
I must congratulate you for excelent product.
Best Regards,
Branko
Posted: Mon 24 Nov 2008 08:53
by Plash
We are working on this problem. You will be notified when we fix it.