Connexion à un autre ensemble de données

De RAD Studio
Aller à : navigation, rechercher

Remonter à Architecture des bases de données


Certains ensembles de données client spécialisés utilisent le BDE ou dbExpress pour se connecter à un serveur de bases de données. Ces ensembles de données client spécialisés sont, de fait, des composants composites qui utilisent de manière interne un autre ensemble de données pour accéder aux données et un composant fournisseur pour packager les données de l'ensemble de données source et appliquer les mises à jour au serveur de bases de données. Ces composants composites requièrent des ressources système supplémentaires mais présentent certains avantages :

  • Les ensembles de données client offrent la prise en charge la plus robuste pour la manipulation des mises à jour placées en mémoire cache. Par défaut, les autres types d'ensembles de données envoient directement les modifications au serveur de bases de données. Vous pouvez réduire le trafic réseau en utilisant un ensemble de données qui place les mises à jour en mémoire cache localement puis les applique toutes en une seule transaction. Pour plus d'informations sur les avantages de l'utilisation d'ensembles de données client pour placer les mises à jour en mémoire cache, voir Utilisation d'un ensemble de données client pour mettre en cache les mises à jour.
  • Les ensembles de données client peuvent appliquer les modifications directement au serveur de bases de données lorsque l'ensemble de données est accessible en lecture seule. Lorsque vous utilisez dbExpress, outre que c'est le seul moyen de parcourir librement les données, c'est la seule façon de modifier les données dans l'ensemble de données.' Même lorsque vous n'utilisez pas dbExpress, le résultat de certaines requêtes et de toutes les procédures stockées est accessible en lecture seule. L'utilisation d'un ensemble de données client offre un procédé standard pour rendre ces données modifiables.
  • Un ensemble de données client pouvant directement utiliser des fichiers dédiés sur disque, son utilisation peut être combinée avec un modèle à base de fichiers afin d'offrir une application "briefcase" souple.

Outre ces ensembles de données client spécialisés, il existe un ensemble de données client générique (TClientDataSet), qui ne comprend pas de fournisseur d'ensemble de données ni d'ensemble de données interne. Bien que TClientDataSet ne possède pas de mécanisme interne d'accès aux bases de données, vous pouvez le connecter à un autre ensemble de données externe à partir duquel il peut lire les données et vers lequel il peut envoyer les mises à jour. Malgré son caractère quelque peu complexe, cette approche s'avère parfois opportune :

  • L'ensemble de données source et le fournisseur d'ensemble de données étant externes, vous pouvez plus facilement contrôler la façon dont ils lisent les données et appliquent les mises à jour. Par exemple, le composant fournisseur met à disposition une série d'événements qui ne sont pas disponibles lorsque vous utilisez un ensemble de données client spécialisé pour accéder aux données.
  • Lorsque l'ensemble de données source est externe, vous pouvez le lier à un autre ensemble de données dans une relation maître/détail. Un fournisseur externe convertit automatiquement cette organisation en un seul ensemble de données comprenant des détails imbriqués. Lorsque l'ensemble de données source est interne, vous ne pouvez pas créer d'ensembles détail imbriqués de cette façon.
  • La connexion d'un ensemble de données client à un ensemble de données externe est une architecture qui peut facilement évoluer vers une architecture multiniveau. Etant donné que le processus de développement est d'autant plus coûteux et consommateur d'énergie que le nombre de niveaux augmente, vous pouvez commencer à développer votre application en tant qu'application à niveau unique ou double. A mesure qu'augmenteront la quantité de données, le nombre d'utilisateurs et le nombre des différentes applications accédant aux données, vous serez éventuellement amené à adopter une architecture multiniveau. Si vous pensez utiliser à terme une architecture multiniveau, il peut être judicieux de commencer en utilisant un ensemble de données client avec un ensemble de données source externe. Ainsi, lorsque vous transférez vers un niveau intermédiaire la logique de l'accès et de la manipulation des données, le développement effectué est protégé car le code est réutilisable à mesure que l'application prend de l'ampleur.
  • TClientDataSet peut être lié à tout ensemble de données source. Cela signifie que vous pouvez utiliser des ensembles de données personnalisés (composants tierces parties) pour lesquels n'existe aucun ensemble de données client spécialisé correspondant. Certaines versions de Delphi incluent même des composants fournisseur spéciaux qui connectent un ensemble de données client à un document XML plutôt qu'à un autre ensemble de données. Cela fonctionne de la même façon que la connexion d'un ensemble de données client à un autre ensemble de données (source), à la différence que le fournisseur XML utilise un document XML à la place d'un ensemble de données. Pour plus d'informations sur ces fournisseurs XML, voir Utilisation d'un document XML comme source pour un fournisseur.

L'architecture qui connecte un ensemble de données client à un ensemble de données externe se présente sous deux versions :

Voir aussi