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

Reply via email to