The client dataset is a common implementation that works independently of the underlying db access library. It can work (through a provider) with any descendant of TCustomDataset, be it a dbExpress dataset, one BDE, ADO one or any of the many libraries available for Delphi to provide direct access to the database using its own client (i.e. ODAC, Direct Oracle Access, ecc. Ecc.)
It can also work in multi-level mode, where the data set and the data access provider are in the remote server application, and TClientDataset is in the client application, which allows you to deploy a "thin client" that does not require database clients or a data access library, such as ADO installed on the client (the required midas.dll code can be associated with the application when using the latest Delphi versions, in any case only the midas.dll file is required otherwise).
In addition, it can be used as a table in memory, capable of storing data in a local file. It also allows you to use the portfolio model, where the thin client can work when it is not connected to the database, and then βsynchronizeβ when the connection becomes available. This was more useful in the past when wireless access was not common.
As you can see, TClientDataset offers a lot more TADODataset.
source share