The live synchronisation is not working. What could be wrong?
Found it. The original TVpCustomDatastore seeks the dependent controls as children of its "Owner". In my demo, however, the owner is the datamodule, not the form. I had seen this and fixed this for the constructor and destructor, but forgot about the notification procedure. Working now correctly in r5125.
When stepping through the RefreshEvents code in the debugger I saw that you do call inherited where the filtering occurs that I mentioned in the previous mail. I don't think that the code inherited from TVpCustomDBDatastore is correct in this situation because it uses the Filter property of the dataset (via the inherited SetFilterCirteria method). This iterates through all dataset records, and I could imagine that the timer interval of 250 ms could produce a lot of network travel in cases of a large database.
The minimum code required for notification of the dependent controls is the code inherited from TVpCustomDatastore ("if not Loading then NotifyDependents;").
An idea: Why not add the timer to the datastore? Along with properties "AutoUpdateTimerEnabled" and "AutoUpdateInterval", and an event "OnAutoUpdate"? Since there are also single-user datastores I think the timer should not be in the base classes (i.e. TVpCustomDatastore or TVpCustomDBDatastore) but in those datastores where this feature could be interesting. DonAlfredo, what do you think?