Utilisation des champs ensemble de données

De RAD Studio
Aller à : navigation, rechercher

Remonter à Manipulation des composants champ - Index

Les champs ensemble de données permettent d'accéder aux données stockées dans un ensemble de données imbriqué. La propriété NestedDataSet contient des références à l'ensemble de données imbriqué. Les données contenues dans l'ensemble de données imbriqué sont accessibles par le biais des objets champ de cet ensemble de données.

Affichage des champs ensemble de données

Les contrôles TDBGrid permettent l'affichage des données stockées dans les champs ensemble de données. Dans un contrôle Vcl.DBGrids.TDBGrid, un champ ensemble de données est désigné dans chaque cellule de la colonne de l'ensemble de données avec la chaîne "(DataSet)" et, à l'exécution, avec un bouton points de suspension sur la droite. Le fait de cliquer sur ce bouton appelle une nouvelle fiche dont la grille affiche l'ensemble de données associé au champ ensemble de données de l'enregistrement en cours. Cette fiche peut aussi être appelée par programmation avec la méthode ShowPopupEditor. Par exemple, si la septième colonne de la grille représente un champ ensemble de données, le code suivant affichera l'ensemble de données associé à ce champ pour l'enregistrement en cours.



 DBGrid1.ShowPopupEditor(DBGrid1.Columns[7]);



 DBGrid1->ShowPopupEditor(DBGrid1->Columns->Items[7], -1, -1);



Accès aux données d'un ensemble de données imbriqué

Normalement un champ ensemble de données n'est pas directement lié à un contrôle orienté données. En fait, comme un champ ensemble de données imbriqué n'est rien d'autre qu'un ensemble de données, vous utilisez un descendant de TDataSet pour accéder à ses données. Le type d'ensemble de données utilisé est déterminé par l'ensemble de données parent (celui possédant le champ ensemble de données). Par exemple, un ensemble de données BDE utilise TNestedTable pour représenter les données des champs ensemble de données, alors que les ensembles de données client utilisent d'autres ensembles de données client.

Pour accéder aux données d'un champ ensemble de données

  1. Créez un objet Data.DB.TDataSetField persistant en appelant l'éditeur de champ de l'ensemble de données parent.
  2. Créez un ensemble de données représentant les valeurs de ce champ ensemble de données. Il doit avoir un type compatible avec l'ensemble de données parent.
  3. Affectez à la propriété DataSetField de l'ensemble de données créé à l'étape 2 le champ ensemble de données persistant créé à l'étape 1.

Si le champ ensemble de données imbriqué de l'enregistrement en cours possède une valeur, le composant ensemble de données détail contient des enregistrements avec les données imbriquées ; sinon, l'ensemble de données détail est vide.

Avant d'insérer des enregistrements dans un ensemble de données imbriqué, vous devez avoir posté l'enregistrement correspondant dans la table maître, s'il vient juste d'être inséré. Si l'enregistrement inséré n'a pas été posté, il sera automatiquement posté avant que ne soit posté l'ensemble de données imbriqué.

Voir aussi