Utilisation de tables détail imbriquées

De RAD Studio
Aller à : navigation, rechercher

Remonter à Création de relations maître/détail


Une table imbriquée est un ensemble de données détail qui est la valeur d'un champ unique d'un autre ensemble de données (maître). Pour les ensembles de données qui représentent les données du serveur, un ensemble de données détail imbriqué peut être utilisé uniquement pour un champ d'un ensemble de données du serveur. Les composants TClientDataSet ne représentent pas les données d'un serveur, mais ils peuvent contenir des champs d'ensembles de données si vous créez pour eux un ensemble de données contenant des détails imbriqués, ou s'ils reçoivent des données d'un fournisseur lié à la table maître dans une relation maître/détail.

Remarque :  Pour TClientDataSet, l'utilisation des ensembles détail imbriqués s'impose si vous souhaitez appliquer les mises à jour à partir de tables maître et détail dans un serveur de base de données.

Pour utiliser des ensembles détail imbriqués, la propriété ObjectView de l'ensemble de données maître doit être True. Lorsque votre ensemble de données de type table contient des ensembles de données détail imbriqués, TDBGrid permet d'afficher les détails imbriqués dans une fenêtre surgissante. Pour comprendre comment cela fonctionne, voir Utilisation des champs ensemble de données.

Vous pouvez aussi afficher et éditer ces ensembles de données détail dans des contrôles orientés données en utilisant un composant ensemble de données séparé pour l'ensemble détail. A la conception, créez des champs persistants pour les champs de votre ensemble de données (maître), en utilisant l'éditeur de champs : cliquez avec le bouton droit sur l'ensemble de données maître et choisissez Editeur de champs. Ajoutez un nouveau champ persistant à votre ensemble de données client en cliquant avec le bouton droit et en choisissant Ajouter des champs. Définissez votre nouveau champ avec le type champ ensemble de données. Dans l'éditeur de champs, définissez la structure de la table détail. Vous devez aussi ajouter des champs persistants pour tous les autres champs utilisés dans votre ensemble de données détail.

Le composant ensemble de données pour la table détail est un ensemble de données descendant d'un type autorisé pour la table maître. Les composants TTable acceptent uniquement les composants TNestedDataSet comme ensembles de données imbriqués. Les composants TSQLTable acceptent d'autres composants TSQLTable. Les composants TClientDataset acceptent d'autres ensembles de données client. Choisissez un ensemble de données du type approprié dans la palette d'outils et ajoutez-le à votre fiche ou à votre module de données. Définissez la propriété DataSetField de cet ensemble de données détail sur le champ DataSet persistant dans l'ensemble de données maître. Enfin, placez un composant source de données dans le module de données ou sur la fiche, et définissez sa propriété DataSet par l'ensemble de données détail. Les contrôles orientés données peuvent utiliser cette source de données pour accéder aux données de l'ensemble de données détail.

Voir aussi