Verarbeitung nicht-parametrisierter Befehle
Bei nicht parametrisierten Befehlen werden alle Anbieterbefehle ausgeführt, und die Recordsets werden während der Befehlsausführung erstellt. Wenn der Befehl synchron ausgeführt wird, werden alle Recordsets vollständig aufgefüllt. Wenn ein asynchroner Auffüllungsmodus ausgewählt wurde, hängt der Auffüllungsstatus der Recordsets vom Auffüllungsmodus und der Größe der Recordsets ab.
Beispielsweise könnte der parent-command ein Recordset von Kunden eines Unternehmens aus der Tabelle „Customers“ (Kunden) zurückgeben, und der child-command könnte ein Recordset von Bestellungen aller Kunden aus der Tabelle „Orders“ (Bestellungen) zurückgeben.
SHAPE {SELECT * FROM Customers}
APPEND ({SELECT * FROM Orders} AS chapOrders
RELATE customerID TO customerID)
Bei nicht parametrisierten Beziehungen zwischen über- und untergeordneten Elementen muss jedes übergeordnete und untergeordnete Recordset-Objekt eine gemeinsame Spalte haben, um sie miteinander einander zuzuordnen. Diese Spalten werden in der RELATE-Klausel benannt, zuerst parent-column und dann child-column. Diese Spalten weisen in ihren jeweiligen Recordset-Objekten möglicherweise unterschiedliche Namen auf, müssen jedoch auf dieselben Informationen verweisen, um eine sinnvolle Beziehung anzugeben. Beispielsweise könnten die Objekte Customers und Orders Recordset beide über ein „customerID“-Feld verfügen. Da die Mitgliedschaft des untergeordneten Recordset durch den Anbieterbefehl bestimmt wird, kann das untergeordnete Recordset verwaiste Zeilen enthalten. Auf diese verwaisten Zeilen kann ohne zusätzliche Neustrukturierung nicht zugegriffen werden.
Durch die Datenstrukturierung wird eine Kapitelspalte an das übergeordnete Recordset angefügt. Die Werte in der Kapitelspalte sind Verweise auf Zeilen im untergeordneten Recordset, die die RELATE-Klausel erfüllen. Das bedeutet, dass in der parent-column einer bestimmten übergeordneten Zeile derselbe Wert wie in der child-column aller Zeilen des untergeordneten Kapitelelements steht. Wenn mehrere TO-Klauseln in derselben RELATE-Klausel verwendet werden, werden sie implizit mit einem AND-Operator kombiniert. Wenn die übergeordneten Spalten in der RELATE-Klausel keinen Schlüssel für das übergeordnete Recordset darstellen, kann eine einzelne untergeordnete Zeile mehrere übergeordnete Zeilen aufweisen.
Wenn Sie auf den Verweis in der Kapitelspalte zugreifen, ruft ADO automatisch das Recordset ab, auf das verwiesen wird. Beachten Sie, dass ein Kapitel in einem nicht parametrisierten Befehl nur eine Teilmenge der Zeilen darstellt, obwohl das gesamte untergeordnete Recordset abgerufen wurde.
Wenn die angefügte Spalte über kein chapter-alias verfügt, wird automatisch ein Name für sie generiert. Ein Field-Objekt für die Spalte wird an die Fields-Sammlung des Recordset-Objekts angefügt, und der Datentyp ist adChapter.
Informationen zur Navigation innerhalb eines hierarchischen Recordset finden Sie unter Zugreifen auf Zeilen in einem hierarchischen Recordset.
Weitere Informationen
Datenstrukturierung – Beispiel
Formale Grammatik für Strukturen
Shape-Befehle im Allgemeinen