Verschachtelte Detailtabellen verwenden

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Haupt/Detail-Beziehungen definieren


Unter einer verschachtelten Tabelle versteht man eine Detaildatenmenge, die dem Wert eines einzelnen Feldes einer anderen Datenmenge (Hauptdatenmenge) entspricht. Bei Datenmengen, die zur Darstellung von Server-Daten dienen, kann eine verschachtelte Detaildatenmenge nur für ein Feld einer Datenmenge auf dem Server verwendet werden. Komponenten vom Typ TClientDataSet stellen keine Server- Daten dar, können aber auch Datenmengenfelder enthalten, wenn Sie eine Datenmenge für diese erstellen, die verschachtelte Detaildatenmengen enthält, oder wenn die Daten von einem Provider stammen, der mit einer Haupttabelle einer Haupt/Detail-Beziehung verknüpft ist.

Anmerkung:  Bei Datenmengen vom Typ TClientDataSet müssen Sie verschachtelte Detaildatenmengen verwenden, um Aktualisierungen aus Haupt- und Detailtabellen in einen Datenbank-Server zu übernehmen.

Voraussetzung für das Arbeiten mit verschachtelten Detaildatenmengen ist, dass die Eigenschaft ObjectView der Hauptdatenmenge auf True gesetzt ist. Wenn die Tabellen-Datenmenge verschachtelte Detaildatenmengen enthält, unterstützt TDBGrid die Anzeige der verschachtelten Detaildaten in einem Popup-Fenster. Weitere Informationen zu diesem Thema finden Sie unter Datenmengenfelder anzeigen.

Alternativ lassen sich Detaildatenmengen auch in datensensitiven Steuerelementen anzeigen und bearbeiten. Hierzu müssen Sie für die Detaildatenmenge eine eigene Datenmengenkomponente definieren. Erstellen Sie zur Entwurfszeit im Felder-Editor persistente Felder für die Felder der (Haupt-) Datenmenge, indem Sie mit der rechten Maustaste auf die Hauptdatenmenge klicken und Felder-Editor wählen. Fügen Sie ein neues persistentes Feld zur Datenmenge hinzu, indem sie mit der rechten Maustaste klicken und Felder hinzufügen wählen. Definieren Sie Ihr neues Feld mit dem Typ DataSet Field. Definieren Sie im Felder-Editor die Struktur der Detailtabelle. Für alle weiteren in der Hauptdatenmenge zu verwendenden Felder müssen ebenfalls persistente Felder definiert werden.

Welcher Typ von Datenmengenkomponente für die Detailtabelle gewählt werden kann, hängt von der Haupttabelle ab, weil es sich dabei um einen Nachkommen eines Typs handeln muss, der als Haupttabelle zulässig ist. In TTable-Komponenten können nur Komponenten vom Typ TNestedDataSet verschachtelt werden. In Komponenten vom Typ TSQLTable können andere Komponenten vom Typ TSQLTable verschachtelt werden. Komponenten vom Typ TClientDataset lassen die Verschachtelung anderer Client-Datenmengen zu. Wählen Sie in der Tool-Palette eine Datenmenge des geeigneten Typs, und fügen Sie diese zum Formular bzw. zum Datenmodul hinzu. Setzen Sie die Eigenschaft DataSetField dieser Detail-Datenmenge auf das persistente DataSet-Feld der Haupt-Datenmenge. Platzieren Sie schließlich eine Datenquellenkomponente im Formular bzw. Datenmodul, und setzen Sie ihre Eigenschaft DataSet auf die Detaildatenmenge. Diese Datenquelle kann von datensensitiven Steuerelementen zum Zugriff auf die Daten in der Detaildatenmenge verwendet werden.

Siehe auch