Choix du type d'ensemble de données pour les mises à jour en cache

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation d'un ensemble de données client pour mettre en cache les mises à jour


Delphi inclut certains composants d'ensembles de données client spécialisés pour les mises à jour en cache. Chaque ensemble de données client est associé à un mécanisme d'accès aux données particulier. Ces types sont listés dans le tableau suivant :

Ensembles de données client spécialisés pour les mises à jour en cache :

Ensemble de données client Mécanisme d'accès aux données

SimpleDS.TSimpleDataSet

dbExpress

DBLocalI.TIBClientDataSet

InterBase Express


Ensemble de données client générique pour les mises à jour en cache :

Ensemble de données client Mécanisme d'accès aux données

Datasnap.DBClient.TClientDataSet

dbExpress, dbGo, BDE


Vous pouvez mettre en cache les mises à jour en utilisant l'ensemble de données client générique (Datasnap.DBClient.TClientDataSet) avec un fournisseur externe et un ensemble de données source. Pour plus d'informations sur l'utilisation de TClientDataSet avec un fournisseur externe, voir Utilisation d'un ensemble de données client avec un fournisseur.

Remarque :  Les ensembles de données client spécialisés associés à chaque mécanisme d'accès aux données utilisent en fait un fournisseur et un ensemble de données source. Toutefois, le fournisseur et l'ensemble de données source sont internes par rapport à l'ensemble de données client.

Le plus simple est d'utiliser un des ensembles de données client spécialisés pour mettre en cache les mises à jour. Mais, il est parfois préférable d'utiliser TClientDataSet avec un fournisseur externe :

  • Si vous utilisez un mécanisme d'accès aux données n'ayant pas d'ensemble de données client spécialisé, vous devez utiliser TClientDataSet avec un composant fournisseur externe. Par exemple, si les données proviennent d'un document XML ou d'un ensemble de données personnalisé.
  • Si vous travaillez avec des tables entre lesquelles a été établie une relation maître/détail, vous devez utiliser TClientDataSet et le connecter, au moyen d'un fournisseur, à la table maître de deux ensembles de données source liés dans une relation maître/détail. L'ensemble de données client voit l'ensemble détail comme le champ d'un ensemble de données imbriqué. Cette approche est nécessaire pour permettre l'application des mises à jour des tables maître et client dans l'ordre correct.
  • Si vous voulez coder des gestionnaires d'événements répondant à la communication entre l'ensemble client et le fournisseur (par exemple, avant et après que l'ensemble client extrait des enregistrements du fournisseur), vous devez utiliser TClientDataSet avec un composant fournisseur externe. Les ensembles de données client spécialisés publient les événements les plus importants de l'application des mises à jour (OnReconcileError, BeforeUpdateRecord et OnGetTableName), mais ils ne publient pas les événements périphériques de la communication entre l'ensemble client et son fournisseur, car au départ ils ont été prévus pour les applications multiniveaux.

Voir aussi