Exemple de mise en forme des données
La commande de mise en forme des données suivante montre comment générer un jeu d’enregistrements de hiérarchique à partir des tables clients et Orders dans 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 indiqué dans Visual Basic Example of Data Shaping), il crée un chapitre (chapOrders) pour chaque enregistrement retourné à partir de la table Customers. Ce chapitre se compose d’un sous-ensemble du jeu d’enregistrements retourné par la table Orders. Le chapitre chapOrders contient toutes les informations requises sur les commandes passées par le client en question. Dans cet exemple, le chapitre se compose de trois colonnes : OrderID, OrderDateet CustomerID.
Les deux premières entrées de la forme résultante Recordset sont les suivantes :
CustomerID | ContactName | ID de commande | Date de commande | 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 jeu d’enregistrements enfant , lié au jeu d’enregistrements parent (tel qu’il est retourné par la commande spécifique au fournisseur immédiatement après le mot-clé SHAPE discuté précédemment), grâce à 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 des commandes SHAPE : à savoir, pour générer un jeu d’enregistrements parent à partir d’un jeu d’enregistrements 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 chez l'enfant. Si la clause BY est omise, le jeu d’enregistrements enfant forme un seul groupe et le jeu d’enregistrements parent contient exactement une ligne. Cela est utile pour calculer les totaux globaux sur l’ensemble du Recordset enfant .
La construction de commande SHAPE vous permet également de créer par programmation un jeu d’enregistrements forme. Vous pouvez ensuite accéder aux composants du jeu d’enregistrements 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 le jeu d’enregistrements parent est formé, il contiendra une colonne de chapitre utilisée pour la lier à un jeu d’enregistrements enfant . Si vous le souhaitez, le jeu d’enregistrements parent peut également avoir des colonnes qui contiennent des agrégats (SOMME, MIN, MAX, et ainsi de suite) sur les lignes enfants. Le parent et l'enfant du jeu d'enregistrements peuvent avoir des colonnes qui contiennent une expression sur la ligne dans le jeu d'enregistrements , ainsi que des colonnes qui sont nouvelles et initialement vides.
Cette section se poursuit avec la rubrique suivante.