Compartilhar via


Visão geral de data shaping

Data shaping significa criar relações hierárquicas entre duas ou mais entidades lógicas em uma consulta. A hierarquia pode ser observada em relações pai-filho entre um registro de um Recordset e um ou mais registros (também conhecidos como capítulos) de outro Recordset. Em uma relação pai-filho, o Recordset pai contém o Recordset filho. Os exemplos dessa relação hierárquica incluem clientes e pedidos. Para cada cliente em um banco de dados, pode haver zero ou mais pedidos. A relação hierárquica pode ser recursiva, o que significa que os registros neto podem ser aninhados em um registro filho. A princípio, um registro hierárquico pode ser aninhado a qualquer profundidade. Na prática, a ADO limita a recursão a, no máximo, 512 Recordsets.

Em geral, as colunas de Recordset em forma podem conter dados de um provedor de dados, como o SQL Server, referências a outro Recordset, valores derivados de um cálculo em uma única linha de um Recordset ou valores derivados de uma operação em uma coluna de um Recordset inteiro. Uma coluna também pode ser fabricada recentemente e vazia.

Quando você recupera o valor de uma coluna que contém uma referência a outro Recordset, a ADO retorna automaticamente o Recordset real representado pela referência. A referência a um Recordset é, na verdade, uma referência a um subconjunto do filho, chamado de capítulo. Um único pai pode referenciar mais de um Recordset filho.

O suporte da ADO para data shaping permite consultar uma fonte de dados e retornar um Recordset em que um registro (pai) representa um Recordset (filho). No cenário de pedido do cliente, você pode usar o data shaping para recuperar as informações dos clientes, bem como os pedidos feitos por cada cliente em uma única consulta. O Recordset resultante também é conhecido como Recordset em forma.

Além disso, o data shaping na ADO permite criar novos objetos Recordset, sem uma fonte de dados subjacente, usando a palavra-chave NEW para descrever os campos dos Recordsets pai e filho. O novo objeto Recordset pode ser preenchido com dados e armazenados persistentemente. Os desenvolvedores também podem executar vários cálculos ou agregações (por exemplo, SUM, AVG e MAX) em campos filho. O data shaping também pode criar um Recordset pai a partir de um Recordset filho, agrupando registros no filho e colocando uma linha no pai para cada grupo no filho.

O SQL regular permite que você recupere dados usando a sintaxe JOIN, mas isso pode ser ineficiente e complicado, pois os dados pai redundantes são repetidos em cada registro retornado para determinada relação pai-filho. O data shaping pode relacionar um único registro pai no Recordset pai a vários registros filho no Recordset filho, evitando a redundância de um JOIN. A maioria das pessoas acha que o modelo de programação de vários Recordsets pai-filho é mais natural e fácil de trabalhar do que o modelo JOIN de um único Recordset.