Datenmengenfelder
Nach oben zu Felder - Index
Mithilfe von Datenmengenfeldern kann auf Daten zugegriffen werden, die in verschachtelten Datenmengen gespeichert sind. Die Eigenschaft NestedDataSet verweist auf die verschachtelte Datenmenge. Der Zugriff auf die Daten der verschachtelten Datenmenge erfolgt über ihre Feldobjekte.
Inhaltsverzeichnis
Datenmengenfelder anzeigen
Das Steuerelement TDBGrid ermöglicht die Anzeige von in Datenmengenfeldern gespeicherten Daten. In einem Vcl.DBGrids.TDBGrid-Steuerelement ist ein Datenmengenfeld in den einzelnen Zellen der Datenmengenspalte am String "(DataSet)" zu erkennen. Zur Laufzeit wird rechts neben dem Datenmengenfeld eine Ellipsen-Schaltfläche angezeigt. Wenn der Benutzer auf diese Schaltfläche klickt, wird ein neues Formular eingeblendet, das in einem Gitter die Datenmenge für das Datenmengenfeld des aktuellen Datensatzes enthält. Dieses Formular kann auch programmseitig mit der Methode ShowPopupEditor des Datengitters eingeblendet werden. Wenn z.B. die siebte Spalte im Gitter ein Datenmengenfeld repräsentiert, zeigt die folgende Anweisung die Datenmenge für das Feld des aktuellen Datensatzes an:
DBGrid1.ShowPopupEditor(DBGrid1.Columns[7]);
DBGrid1->ShowPopupEditor(DBGrid1->Columns->Items[7], -1, -1);
Auf Daten in einer verschachtelten Datenmenge zugreifen
Ein Datenmengenfeld ist normalerweise nicht direkt mit einem datensensitiven Steuerelement verbunden. Da es sich auch bei einer verschachtelten Datenmenge um eine Datenmenge handelt, erfolgt der Zugriff auf die Daten über einen TDataSet-Nachkommen. Welche Art von Datenmenge Sie hierzu verwenden, hängt von der übergeordneten Datenmenge (die das Datenmengenfeld enthält) ab. Zum Beispiel benutzt eine BDE-Datenmenge TNestedTable zur Darstellung der Daten in ihren Datenmengenfeldern, während Client-Datenmenge andere Client-Datenmengen verwenden.
So greifen Sie auf die Daten in einem Datenmengenfeld zu:
- Erstellen Sie zunächst ein persistentes Data.DB.TDataSetField-Objekt, indem Sie den Felder-Editor für die übergeordnete Datenmenge aufrufen.
- Definieren Sie eine Datenmenge, um die in dem Datenmengenfeld enthaltenen Werte zu repräsentieren. Ihr Typ muss kompatibel zu dem der übergeordneten Datenmenge sein.
- Weisen Sie der Eigenschaft DataSetField der Datenmenge, die Sie in Schritt 2 erstellt haben, das persistente Datenfeld zu, das in Schritt 1 erstellt wurde.
Falls das verschachtelte Datenmengenfeld für den aktuellen Datensatz einen Wert enthält, dann enthält die Detail-Datenmengenkomponente die Datensätze mit den verschachtelten Daten. Andernfalls ist die Detail-Datenmenge leer.
Andernfalls ist die Detail-Datenmenge leer. Vor dem Eintragen von Datensätzen in verschachtelte Datenmengen müssen Sie den entsprechenden Satz in die übergeordnete Tabelle eintragen. Wenn der eingefügte Datensatz nicht eingetragen wurde, wird er vor dem Eintragen der verschachtelten Datenmenge automatisch eingetragen.
Siehe auch
Beispiele
- FireDAC TFDMemTable Nested DataSet (Beispiel)