Question about TWebIndexedDbClientDataset loading behavior (Active := True)

Hello TMS Support Team,

I am using TWebIndexedDbClientDataset in a Delphi + TMS WEB Core project to read and write data from IndexedDB.
While testing, I noticed that when I set Active := True, the component seems to load the entire contents of the IndexedDB object store into memory.

Could you please confirm if this understanding is correct?

Specifically:

  • When Active := True, does the component internally call methods like GetAllObjsByIndex and load all records from the IndexedDB store into the in-memory dataset?
  • Or is there any mechanism that supports partial or incremental loading (for example, limited by index or cursor range)?

If all data is indeed loaded into memory at once, are there recommended approaches for handling large datasets efficiently with TWebIndexedDbClientDataset?

(TMS WEB Core 2.9.3.0)

Thank you very much for your help.
Best regards,

It is correct that when the clientdataset is activated, the entire IndexedDB is loaded into the clientdataset so all data is directly available and make it easy to use from the TMS WEB Core app.
With respect to large dataset, please note that the size limitation of the IndexDB store depends on the browser/operating system/disk space and especially on mobile devices it is typically only around 50MB.
If you do not want that the entire IndexDB data is loaded at once, you could use the direct IndexedDB APIs to access the data: