Exemple de mise en forme des données
La commande de mise en forme des données suivante montre comment créer un Recordset hiérarchique à partir des tables Customers et Orders de la base de données Northwind.
SHAPE {SELECT CustomerID, ContactName FROM Customers}
APPEND ({SELECT OrderID, OrderDate, CustomerID FROM Orders} AS chapOrders
RELATE customerID TO customerID)
Lorsque cette commande est utilisée pour ouvrir un objet Recordset (comme illustré dans Exemple Visual Basic de mise en forme des données), elle crée un chapitre (chapOrders) pour chaque enregistrement retourné à partir de la table Customers. Ce chapitre se compose d’un sous-ensemble de l’objet Recordset retourné à partir de la table Orders. Le chapitre chapOrders contient toutes les informations demandées sur les commandes passées par le client donné. Dans cet exemple, le chapitre se compose de trois colonnes : OrderID, OrderDate et CustomerID.
Les deux premières entrées de l’objet Recordset mis en forme résultant sont les suivantes :
CustomerID | ContactName | OrderID | OrderDate | CustomerID |
---|---|---|---|---|
ALFKI | Maria Ander | 10643 10692 10702 10835 10952 11011 |
1997-08-25 1997-10-03 1997-10-13 1998-01-15 1998-03-16 1998-04-09 |
ALFKI ALFKI ALFKI ALFKI ALFKI ALFKI |
ANATR | Ana Trujillo | 10308 10625 10759 10926 |
1996-09-18 1997-08-08 1997-11-28 1998-03-04 |
ANATR ANATR ANATR ANATR |
Dans une commande SHAPE, APPEND est utilisé pour créer un objet Recordset enfant lié à l’objet Recordset parent (comme retourné à partir de la commande spécifique au fournisseur immédiatement après le mot clé SHAPE abordé précédemment) par la clause RELATE. Le parent et l’enfant ont généralement au moins une colonne en commun : la valeur de la colonne dans une ligne du parent est identique à la valeur de la colonne dans toutes les lignes de l’enfant.
Il existe une deuxième façon d’utiliser les commandes SHAPE : générer un Recordset parent à partir d’un Recordset enfant. Les enregistrements du Recordset enfant sont regroupés, généralement à l’aide de la clause BY, et une ligne est ajoutée au Recordset parent pour chaque groupe résultant dans l’enfant. Si la clause BY est omise, l’objet Recordset enfant forme un seul groupe et l’objet Recordset parent contient exactement une ligne. Cela est utile pour calculer les agrégats « grand total » sur le Recordset enfant entier.
La construction de commande SHAPE vous permet également de créer par programme un Recordset mis en forme. Vous pouvez ensuite accéder aux composants de l’objet Recordset par programmation ou via un contrôle visuel approprié. Une commande de forme est émise comme n’importe quel autre texte de commande ADO. Pour plus d’informations, consultez Commandes de forme en général.
Quelle que soit la façon dont l’objet Recordset parent est formé, il contient une colonne de chapitre utilisée pour le lier à un Recordset enfant. Si vous le souhaitez, l’objet Recordset parent peut également avoir des colonnes qui contiennent des agrégats (SUM, MIN, MAX et ainsi de suite) sur les lignes enfants. Les objets Recordset parent et enfant peuvent tous deux avoir des colonnes qui contiennent une expression sur la ligne de l’objet Recordset, ainsi que des colonnes qui sont nouvelles et initialement vides.
Cette section se poursuit avec la rubrique suivante.