Home arrow Delphi-Kylix arrow Page 2 - Demystifying the Client Dataset

Demystifying the Client Dataset

The TClient Dataset component available in Delphi encapsulates a lot more features than one would expect from a dataset component. TClient DataSet is a specialized component that holds data in-memory and can be used effectively in different application architectures. It does not require a database connection to work and for that reason it is suited to file-based application architecture.

Author Info:
By: Danish Ahmed
Rating: 5 stars5 stars5 stars5 stars5 stars / 11
December 12, 2007
  1. · Demystifying the Client Dataset
  2. · Introducing the Client Dataset
  3. · Using Filters and Ranges with the Client Dataset
  4. · Cache Updates

print this article

Demystifying the Client Dataset - Introducing the Client Dataset
(Page 2 of 4 )

The Client Dataset is a descendant of a TDataset class and inherits most of its methods and properties. At the same time it introduces a few of its own methods and properties. It holds data in memory in a table-like format and allows you to manipulate data in the same manner as you would manipulate it using a table-type dataset connected to a database server. But it can also be used as a query-type dataset by specifying SQL statements or stored procedures through its CommandText property. This flexibility of the client dataset in allowing itself to be used as a table-type dataset, a query-type dataset and a storedprocedure-type according to the situation, and even executing SQL statements that do not return a result, make it a very powerful accessory in database application development.

The Client Dataset component also allows you to create database applications that do not require connection to a database server or applications which are not absolutely dependent on data access mechanisms. Unlike other datasets, the client dataset does not connect to the database server itself but receives data from and sends data to internal and external providers. This provider can be a dataset provider in the same application or a dataset provider residing in a different application (in the case of multi-tier applications) or an XML provider.

In fact, you can also use the client dataset to create a database application which writes data to a flat file and loads it to memory when required. This is called MyBase, the ability of client datasets to save themselves to a file and to load the data from a file. I will come back to that later in this series; for now let us concentrate on the merits and demerits of the client dataset.

When using MyBase or a provider to transact data, the client dataset is supremely unconcerned about the data access mechanism being used for data transaction. This means that while coding you do not have to code keeping BDE, ADO or dbExpress in mind. When you are working with data, the client dataset stores all edited and unedited data locally and when the changes are committed, it passes those changes to the provider. When working with server data, the client dataset isolates the user from the database server for the most part. The user does not interact with data until s/he is committing the final transaction.

As such you don't have to worry about what data access mechanism is being used. In fact you don't even have to consider whether or not a particular feature is supported by the data access mechanism; you can implement it through the client dataset. This feature of not depending upon specific data access mechanisms makes applications built with the client dataset easy to migrate to other platforms and lets you change data access mechanisms without requiring significant rework.

blog comments powered by Disqus

- Loading an XML Document into the DOM
- Delphi Wrapper Classes and XML
- Delphi and the DOM
- Delphi and XML
- Internet Access: Client Service
- Finishing the Client for an Internet Access ...
- The Client for an Internet Access Control Ap...
- User Management for an Internet Access Contr...
- Important Procedures for an Internet Access ...
- Server Code for an Internet Access Control A...
- Constructing the Interface for an Internet A...
- Building a Server Application for an Interne...
- Building an Internet Access Control Applicat...
- Client Dataset: Working with Data Packets an...
- Using the Client Dataset in an N-Tiered Appl...

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 

Developer Shed Affiliates


© 2003-2018 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials