4 votes

Quelle est la différence entre ADOTable et ClientDataSet

Quelle est la différence entre ADOTable et ClientDataSet?
Les deux composants sont capables d'effectuer des mises à jour en lot, pourquoi ajouter la surcharge supplémentaire d'avoir 2 composants supplémentaires comme ClientDataSet et DataSetProvider.

4voto

Torbins Points 1438

La principale différence est que ClientDataSet peut fonctionner sans connexion à une base de données externe. Vous pouvez l'utiliser comme une table en mémoire ou charger son contenu à partir d'un fichier. En combinaison avec DataSetProvider, il est fréquemment utilisé pour surmonter les limites des ensembles de données unidirectionnels et comme cache.

3voto

Mad Hatter Points 772

Le jeu de données client est une implémentation générique qui fonctionne indépendamment de la bibliothèque d'accès à la base de données sous-jacente. Il peut fonctionner (via le fournisseur) avec tout descendant de TCustomDataset, qu'il s'agisse d'un jeu de données dbExpress, d'un jeu de données BDE, d'un jeu de données ADO, ou de l'une des nombreuses bibliothèques disponibles pour Delphi permettant un accès direct à la base de données en utilisant le client natif (c'est-à-dire ODAC, Direct Oracle Access, etc. etc.)

Il peut également fonctionner en mode multi-tiers où le jeu de données d'accès aux données et le fournisseur se trouvent dans une application serveur distante et le TClientDataset dans l'application cliente, permettant un déploiement "client léger" qui ne nécessite pas d'installations de clients de base de données ou de bibliothèques d'accès aux données comme ADO sur le client (le code midas.dll requis peut être lié à l'application lors de l'utilisation de versions récentes de Delphi, de toute façon seul le midas.dll est requis sinon).

En plus de cela, il peut être utilisé comme une table en mémoire capable de stocker des données dans un fichier local. Il permet également le modèle du "porte-documents", où un client léger peut encore fonctionner lorsque non connecté à la base de données, et ensuite se "synchroniser" lorsqu'une connexion est disponible. C'était plus utile dans le passé, lorsque l'accès sans fil n'était pas courant.

Comme vous pouvez le voir, TClientDataset offre bien plus qu'un TADODataset.

3voto

markus_ja Points 1585

Un ClientDataSet est un jeu de données en mémoire, qui possède de nombreuses fonctionnalités supplémentaires utiles. Un grand avantage par rapport aux tables et requêtes Interbase/Firebird est que vous n'avez pas besoin de maintenir une transaction active, par exemple tant que vous affichez les données dans une grille.

Jetez un coup d'œil à cet article : Un ClientDataSet dans chaque application de base de données

0voto

Moez Points 477

La différence la plus importante à laquelle je pense est la résolution des conflits de mise à jour. En fait, TClientDataSet expose le pratique dialogue ReconcileErrorForm, qui enveloppe le processus de montrer à l'utilisateur les enregistrements anciens et nouveaux et lui permet de spécifier quelle action prendre, tandis qu'avec TADOTable par exemple, vous êtes essentiellement seul.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X