Gestion des relations maître/détail

De RAD Studio
Aller à : navigation, rechercher

Remonter à Création de l'application serveur


Vous pouvez créer des relations maître/détail entre les ensembles de données client de votre application client de la même façon qu'avec tout ensemble de données de type table. Pour plus d'informations sur la définition de relations maître/détail de cette manière, voir Création de relations maître/détail.

Toutefois, cette approche présente deux inconvénients majeurs :

  • Tous les enregistrements de la table détail doivent provenir du serveur d'applications même si elle n'utilise qu'un ensemble détail à la fois. Ce problème peut être atténué à l'aide de paramètres. Pour plus d'informations, voir Limitation des enregistrements avec des paramètres.
  • Il est très difficile d'appliquer les mises à jour car les ensembles de données client les appliquent au niveau de l'ensemble de données alors que les mises à jour maître/détail englobent plusieurs ensembles de données. Même dans un environnement à niveau double, où vous pouvez utiliser le composant connexion de base de données pour appliquer les mises à jour pour plusieurs tables dans une seule transaction, l'application des mises à jour dans des fiches maître/détail est délicate.

Dans les applications multiniveaux, vous pouvez éviter ces problèmes en utilisant des tables imbriquées pour représenter la relation maître/détail. Lorsque les données proviennent d'ensembles de données, définissez une relation maître/détail entre les ensembles de données sur le serveur d'applications. Affectez ensuite la table maître à la propriété DataSet de votre composant fournisseur. Pour utiliser des tables imbriquées pour représenter les relations maître/détail lorsque les données proviennent de documents XML, utilisez un fichier de transformation qui définit les ensembles détails imbriqués.

Lorsque les clients appellent la méthode GetRecords du fournisseur, il inclut automatiquement l'ensemble de données détail en tant que champ ensemble de données dans les enregistrements du paquet de données. Lorsque les clients appellent la méthode ApplyUpdates du fournisseur, il traite automatiquement l'application des mises à jour dans l'ordre adéquat.

Voir aussi