Beispiel für datenstrukturierung
Der folgende Datenstrukturierungsbefehl veranschaulicht, wie Sie ein hierarchisches Recordset aus den Tabellen Customers und Orders Tabellen in der Northwind-Datenbank erstellen.
SHAPE {SELECT CustomerID, ContactName FROM Customers}
APPEND ({SELECT OrderID, OrderDate, CustomerID FROM Orders} AS chapOrders
RELATE customerID TO customerID)
Wenn dieser Befehl verwendet wird, um ein Recordset- -Objekt zu öffnen (wie in Visual Basic Example of Data Shapingdargestellt), erstellt es ein Kapitel (chapOrders) für jeden Datensatz, der aus der Tabelle Customers zurückgegeben wird. Dieses Kapitel besteht aus einer Teilmenge des Recordset, die aus der Tabelle Orders zurückgegeben wird. Das chapOrders Kapitel enthält alle angeforderten Informationen zu den Bestellungen, die der angegebene Kunde aufgegeben hat. In diesem Beispiel besteht das Kapitel aus drei Spalten: OrderID, OrderDateund CustomerID.
Die ersten beiden Einträge des resultierenden, geformten Recordset- sind wie folgt:
Kunden-ID | Kontaktname | Auftrags-ID | Bestelldatum | Kunden-ID |
---|---|---|---|---|
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 |
In einem SHAPE-Befehl wird APPEND verwendet, um durch die RELATE-Klausel ein untergeordnetes Recordset im Zusammenhang mit dem übergeordneten Recordset zu erstellen, wie es vom anbieterspezifischen Befehl unmittelbar nach dem zuvor erklärten SHAPE-Schlüsselwort zurückgegeben wird. Normalerweise haben das übergeordnete und das untergeordnete Objekt mindestens eine gemeinsame Spalte: Der Wert der Spalte in einer Zeile des übergeordneten Objekts entspricht dem Wert der Spalte in allen Zeilen des untergeordneten Objekts.
Es gibt eine zweite Möglichkeit, SHAPE-Befehle zu verwenden: nämlich durch das Erzeugen eines übergeordneten Recordset aus einem untergeordneten Recordset. Die Datensätze im untergeordneten Recordset- werden gruppiert, in der Regel mithilfe der BY-Klausel, und eine Zeile wird dem übergeordneten Recordset für jede resultierende Gruppe im untergeordneten Objekt hinzugefügt. Wenn die BY-Klausel nicht angegeben wird, wird das untergeordnete Recordset- eine einzelne Gruppe bilden, und das übergeordnete Recordset- enthält genau eine Zeile. Dies ist nützlich für das Berechnen von „Gesamtsummen“-Aggregaten über das ganze untergeordnete Recordset.
Mit dem SHAPE-Befehlskonstrukt können Sie auch programmgesteuert ein strukturiertes Recordseterstellen. Anschließend können Sie programmgesteuert oder über ein entsprechendes visuelles Steuerelement auf die Komponenten des Records et zugreifen. Ein Shape-Befehl wird wie jeder andere ADO-Befehlstext ausgegeben. Weitere Informationen finden Sie unter Shape-Befehle im Allgemeinen.
Unabhängig davon, auf welche Weise das übergeordnete Recordset- gebildet wird, enthält es eine Spalte für Kapitel, die verwendet wird, um es mit einem untergeordneten Recordset-zu verknüpfen. Wenn Sie möchten, kann das übergeordnete Recordset auch Spalten enthalten, die Aggregate (SUMME, MIN, MAX usw.) über die untergeordneten Zeilen enthalten. Sowohl das übergeordnete als auch das untergeordnete Recordset können Spalten enthalten, die einen Ausdruck in der Zeile des Recordsetenthalten, sowie Spalten, die neu und anfangs leer sind.
Dieser Abschnitt wird mit dem folgenden Thema fortgesetzt.