Vue d’ensemble de la mise en forme des données
La mise en forme des données signifie créer des relations hiérarchiques entre deux entités logiques ou plus dans une requête. La hiérarchie peut être vue dans les relations parent-enfant entre un enregistrement d’un Recordset et un ou plusieurs enregistrements (également appelés chapitre) d’un autre Recordset. Dans une relation parent-enfant, l’objet Recordset parent contient l’objet Recordset enfant. Par exemple, une telle relation hiérarchique est des clients et des commandes. Pour chaque client d’une base de données, il peut y avoir zéro ou plusieurs commandes. La relation hiérarchique peut être récursive, ce qui signifie que les enregistrements des petits-enfants peuvent être imbriqués dans un enregistrement enfant. En principe, un enregistrement hiérarchique peut être imbriqué à n’importe quelle profondeur. En pratique, ADO limite la récursivité à un maximum de 512 Recordsets.
En général, les colonnes d’un Recordset en forme peuvent contenir des données d’un fournisseur de données tel que SQL Server, des références à un autre Recordset, des valeurs dérivées d’un calcul sur une seule ligne d’un Recordset ou des valeurs dérivées d’une opération sur une colonne d’un Recordset entier. Une colonne peut également être nouvellement fabriquée et vide.
Lorsque vous récupérez la valeur d’une colonne qui contient une référence à un autre Recordset, ADO retourne automatiquement l’objet Recordset réel représenté par la référence. La référence à un Recordset est en fait une référence à un sous-ensemble de l’enfant, appelée chapitre. Un parent unique peut référencer plusieurs recordset enfants.
La prise en charge ADO de la mise en forme des données vous permet d’interroger une source de données et de retourner un recordset dans lequel un enregistrement (parent) représente un recordset (enfant). Dans le scénario de commande client, vous pouvez utiliser la mise en forme des données pour récupérer les informations des clients ainsi que les commandes passées par chaque client dans une seule requête. L’objet Recordset résultant est également appelé Recordset en forme.
En outre, la mise en forme des données dans ADO vous permet de créer de nouveaux objets Recordset sans source de données sous-jacente à l’aide du mot clé NEW pour décrire les champs des Recordset parents et enfants. Le nouvel objet Recordset peut ensuite être rempli avec des données et stocké de manière permanente. Les développeurs peuvent également effectuer différents calculs ou agrégations (par exemple, SUM, AVG et MAX) sur les champs enfants. La mise en forme des données peut également créer un Recordset parent à partir d’Recordset enfant en regroupant des enregistrements dans l’enfant et en plaçant une ligne dans le parent pour chaque groupe de l’enfant.
SQL standard vous permet de récupérer des données à l’aide de la syntaxe JOIN, mais cela peut être inefficace et inwieldy, car les données parentes redondantes sont répétées dans chaque enregistrement retourné pour une relation parent-enfant donnée. La mise en forme des données peut lier un enregistrement parent unique dans le Recordset parent à plusieurs enregistrements enfants dans l’objet Recordset enfant, ce qui évite la redondance d’une JOIN. La plupart des gens trouvent le modèle de programmation Recordset parent-enfant plus naturel et plus facile à utiliser que le modèle Recordset JOIN unique.