DELTA support

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Stefano Monterisi
Posts: 23
Joined: Wed 13 Dec 2017 15:11

DELTA support

Post by Stefano Monterisi » Tue 22 May 2018 09:36

Hi,
there is no delta support for all UNIDAC components (Uniquery, Virtualtable, etc)?
How I can update insert/update/delete records on remote service? I need to send delta to a remote server (RealthinClient) that use Uniquery.
What is cached updates for in Tvirtualtable?
This is a serious failure, I have to use Firedac or clientdataset...

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: DELTA support

Post by MaximG » Thu 24 May 2018 13:44

When working with the UniQuery component, you can use the Cached Updates mode : https://www.devart.com/unidac/docs/deva ... pdates.htm
This mode is not applicable to the TVirtualTable component, because it is not related to any remote or local data source and is a data storage in the memory with the TDataSet interface

Stefano Monterisi
Posts: 23
Joined: Wed 13 Dec 2017 15:11

Re: DELTA support

Post by Stefano Monterisi » Fri 25 May 2018 10:50

Hi Maxim,
ok, thanks,
but how to use a remote query (Uniquery on server through HTTP connection) for modify dataset at client in cached update and post delta to server?
Firedac has FDMemory that have delta property; I can send delta to server for update operations...
So I load memory dataset from remote and post change to server without a direct db connection.

This is'nt possible with Unidac component. Or not?

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: DELTA support

Post by MaximG » Fri 25 May 2018 14:40

In order to send a set of modified records using UniQuery to a remote database server, it is enough to use Cached Updates mode

Code: Select all

UniQuery.CachedUpdates := True;
and then at the appropriate time, call the ApplyUpdates method. In this case, no additional actions are required from the developer, as all the functionality required for this task have already been implemented in UniDAC. To test this mode, you can use the Demo distributed with UniDAC: [UniDAC Demo folder]\Demos\UniDacDemo\CachedUpdates\
TVirtualTable is not related to any data sources, but is only a data storage in memory. TVirtualTable is not designed to work with a remote data source. The details of working with this component are available in our documentation : https://www.devart.com/virtualdac/docs/ ... table.htm

Stefano Monterisi
Posts: 23
Joined: Wed 13 Dec 2017 15:11

Re: DELTA support

Post by Stefano Monterisi » Fri 25 May 2018 15:08

Hi Maxim,
thank you for help.

I use cached update since first release of BDE (199?). I known very well Applyupdates, etc...
My question go in another direction:
My project work with data on a remote HTTP server that works as a service provider (REST or direct). So I need a multi-teer approach.
So Client make the request, server (HTTP) receive request and resend, after some operations, query data requested (from a Uniquery result) to client (delphi) that load the result in a memory table.
When User commit data, all DELTA must be send to the service for update the database. All this is now possible with FDmemtable o Clientdataset, but not with UniDac components.

MaximG
Devart Team
Posts: 1822
Joined: Mon 06 Jul 2015 11:34

Re: DELTA support

Post by MaximG » Tue 29 May 2018 13:23

Currently, the TVirtualTable component does not support the described functionality. You can leave your suggestions at our UserVoice page (http://devart.uservoice.com/forums/1046 ... 939-unidac), and if there are many votes for your suggestion, we will implement it.

Post Reply