Compartilhar via


Exemplo de data shaping

O comando de formatação de dados a seguir demonstra como criar um Recordset hierárquico com base nas tabelas Customers e Orders no banco de dados Northwind.

SHAPE {SELECT CustomerID, ContactName FROM Customers}   
APPEND ({SELECT OrderID, OrderDate, CustomerID FROM Orders} AS chapOrders   
RELATE customerID TO customerID)   

Quando esse comando é usado para abrir um objeto Recordset (conforme mostrado no Exemplo de modelagem de dados do Visual Basic), ele cria um capítulo (chapOrders) para cada registro retornado da tabela Customers. Esse capítulo consiste em um subconjunto do Recordset retornado da tabela Orders. O capítulo chapOrders contém todas as informações solicitadas sobre os pedidos feitos pelo cliente especificado. Neste exemplo, o capítulo consiste em três colunas: OrderID, OrderDate e CustomerID.

As duas primeiras entradas do Recordset formatado resultante são as seguintes:

CustomerID ContactName OrderID OrderDate CustomerID
ALFKI Mila Moraes 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 Sara Melo 10308

10625

10759

10926
1996-09-18

1997-08-08

1997-11-28

1998-03-04
ANATR

ANATR

ANATR

ANATR

Em um comando SHAPE, APPEND é usado para criar um Recordset filho relacionado ao Recordset pai (conforme retornado do comando específico do provedor imediatamente após a palavra-chave SHAPE que foi discutida anteriormente) pela cláusula RELATE. Normalmente, o pai e o filho têm, pelo menos, uma coluna em comum: o valor da coluna em uma linha do pai é o mesmo que o valor da coluna em todas as linhas do filho.

Há uma segunda maneira de usar comandos SHAPE: ou seja, para gerar um Recordset pai de um Recordset filho. Os registros no Recordset filho são agrupados, normalmente com a cláusula BY, e uma linha é adicionada ao Recordset pai para cada grupo resultante no filho. Se a cláusula BY for omitida, o Recordset filho formará um só grupo e o Recordset pai conterá exatamente uma linha. Isso é útil para calcular agregações de "total geral" em todo o Recordset filho.

A construção do comando SHAPE também permite que você crie um Recordset formatado por meio de programação. Em seguida, você pode acessar os componentes do Recordset por meio de programação ou por meio de um controle visual apropriado. Um comando de forma é emitido como qualquer outro texto de comando do ADO. Para obter mais informações, confira Comandos de forma em geral.

Independentemente da forma como o Recordset pai é formado, ele conterá uma coluna de capítulo que é usada para relacioná-lo a um Recordset filho. Se você desejar, o Recordset pai também pode ter colunas que contêm agregações (SUM, MIN, MAX etc.) sobre as linhas filho. O Recordset pai e filho podem ter colunas que contêm uma expressão na linha no Recordset, bem como colunas que são novas e inicialmente vazias.

Esta seção continua com o tópico a seguir.