On Thu, 23 Feb 2023, Luca Olivetti via lazarus wrote:
El 23/2/23 a les 9:43, Michael Van Canneyt via lazarus ha escrit:
Something like this:
https://docwiki.embarcadero.com/RADStudio/Rio/en/Browsing_Tables_(FireDAC)#Live_Data_Window_Mode
This is not something that the grid handles. This is a dataset feature.
Yes, I supposed so
At this moment I know of no FPC/Lazarus dataset component that handles
this automatically.
bummer :-(
Note the remark on that page:
"Although FireDAC minimizes the number of generated and executed SQL
commands in LDW mode,
it still produces a heavier DB load than TFDQuery. So, application
developers should
carefully choose when to use TFDTable and LDW mode. "
This is exactly why FPC does not have a database table component. It's
horribly inefficient.
OTOH a TDBGrid is a very convenient way to display data.
I my application I just use it to display (in read-only mode) an sqlite
table that holds less than 1000 records and it could be updated quite
frequently (hence the need for the frequent TDataset.refresh), and it
works fast enough with that limited amount of records.
Now I need to expand the table to 10000 records and the performance is
unacceptable.
The best way is to use "limit N offset M" in your query and use a paging
mechanism. Make sure you sort the records, obviously.
But IMO:
in the first place you should ask yourself if displaying 10.000 records is
what you actually want to do.
Maybe your application is better off with some filtering ?
Michael.
--
_______________________________________________
lazarus mailing list
lazarus@lists.lazarus-ide.org
https://lists.lazarus-ide.org/listinfo/lazarus