Fonctionnement des commandes non paramétrées
Pour les commandes non paramétrées, toutes les commandes du fournisseur sont exécutées et les Recordsets sont créés pendant l'exécution de la commande. Si la commande est exécutée de manière synchrone, tous les Recordsets seront entièrement remplis. Si un mode de population asynchrone a été sélectionné, l'état de population des Recordsets dépendra du mode de population et de la taille des Recordsets.
Par exemple, la commande parente peut renvoyer un Recordset de clients pour une entreprise à partir d’une table Clients, et la commande enfant peut retourner un Recordset de commandes pour tous les clients d’une table Orders.
SHAPE {SELECT * FROM Customers}
APPEND ({SELECT * FROM Orders} AS chapOrders
RELATE customerID TO customerID)
Pour les relations parent-enfant non paramétrables, chaque objet parent et enfant Recordset doit avoir une colonne en commun pour les associer. Les colonnes sont nommées dans la clause RELATE, la colonne parente d’abord, puis la colonne enfant. Les colonnes peuvent avoir des noms différents dans leurs objets Recordset respectifs, mais doivent faire référence aux mêmes informations afin de spécifier une relation significative. Par exemple, les objets Clients and Orders Recordset peuvent tous deux avoir un champ customerID. Étant donné que l’appartenance au Recordset enfants est déterminée par la commande fournisseur, l’objet Recordset enfant peut contenir des lignes orphelines. Ces lignes orphelines sont inaccessibles sans remodelage supplémentaire.
La mise en forme des données ajoute une colonne de chapitre au Recordset parent. Les valeurs de la colonne de chapitre sont des références aux lignes de l’objet Recordset enfant, qui répondent à la clause RELATE. Autrement dit, la même valeur se trouve dans la colonne parente d’une ligne parente donnée, comme dans la colonne enfant de toutes les lignes de l’enfant du chapitre. Lorsque plusieurs clauses TO sont utilisées dans la même clause RELATE, elles sont implicitement combinées à l’aide d’un opérateur AND. Si les colonnes parentes de la clause RELATE ne constituent pas une clé pour l’objet Recordset parent, une seule ligne enfant peut avoir plusieurs lignes parentes.
Lorsque vous accédez à la référence dans la colonne de chapitre, ADO récupère automatiquement l’objet Recordset représenté par la référence. Notez que dans une commande non paramétrable, bien que Recordset enfants ait été récupéré, le chapitre présente uniquement un sous-ensemble de lignes.
Si la colonne ajoutée n’a pas d’alias de chapitre, un nom est généré automatiquement. Un objet Champ pour la colonne sera ajouté à la collection Champs de l’objet Recordset, et son type de données sera adChapter.
Pour plus d’informations sur la navigation dans un Recordset hiérarchique, voir Accès aux lignes dans un recordset hiérarchique.
Voir aussi
Exemple de mise en forme des données
Grammaire formelle de la commande SHAPE
Généralités sur les commandes SHAPE