Поделиться через


Пример формирования данных

Следующая команда формирования данных демонстрирует, как создать иерархический набор записей из таблиц Customers и Orders в базе данных Northwind.

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

Когда эта команда используется для открытия объекта Recordset (как показано в visual Basic Example of Data Shaping), она создает главу (chapOrders) для каждой записи, возвращаемой из таблицы Customers . Эта глава состоит из подмножества набора записей, возвращаемого из таблицы Orders . Глава chapOrders содержит все запрошенные сведения о заказах, размещенных данным клиентом. В этом примере глава состоит из трех столбцов: OrderID, OrderDate и CustomerID.

Первые две записи результирующей фигуры Recordset :

CustomerID ContactName OrderID OrderDate CustomerID
ALFKI Мария Андер 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 Ана Трухильо 10308

10625

10759

10926
1996-09-18

1997-08-08

1997-11-28

1998-03-04
ANATR

ANATR

ANATR

ANATR

В команде SHAPE APPEND используется для создания дочернего набора записей, связанного с родительским набором записей (возвращаемого из команды поставщика сразу после ключевое слово SHAPE, которая обсуждалась ранее) предложением RELATE. Родительский и дочерний столбец обычно имеют по крайней мере один общий столбец. Значение столбца в строке родительского элемента совпадает со значением столбца во всех строках дочернего элемента.

Существует еще один способ использования команд SHAPE: создание родительского набора записей из дочернего набора записей. Записи в дочернем наборе записей группируются, как правило, с помощью предложения BY, и одна строка добавляется в родительский набор записей для каждой результирующей группы в дочернем элементе. Если предложение BY опущено, дочерний набор записей будет формировать одну группу, а родительский набор Записей будет содержать ровно одну строку. Это полезно для вычисления агрегатов "общий итог" по всему дочернему набору записей.

Конструкция команды SHAPE также позволяет программным способом создать фигурный набор записей. Затем вы можете получить доступ к компонентам Набора записей программным способом или с помощью соответствующего визуального элемента управления. Команда фигуры создается так же, как и любой другой текст команды ADO. Дополнительные сведения см. в разделе Команды фигуры в общем.

Независимо от того, каким образом формируется родительский набор записей , он будет содержать столбец главы, который используется для его связи с дочерним набором записей. При необходимости родительский набор записей также может содержать столбцы, содержащие статистические выражения (SUM, MIN, MAX и т. д.) над дочерними строками. Как родительский, так и дочерний набор записей могут иметь столбцы, содержащие выражение в строке в наборе записей, а также столбцы, которые являются новыми и изначально пустыми.

Этот раздел продолжается со следующим разделом.