2012-08-28 1 views
6

Ich möchte eine "Duplicate Record" -Aktion erstellen, die, wenn sie aufgerufen wird, den aktuellen Datensatz in einem TDataSet Nachkomme dupliziert. Wie kann ich herausfinden, ob der Datensatz der Master-Datensatz einer Master/Detail-Beziehung ist? Mit TClientDataSet ist es ziemlich einfach, aber ich brauche diese Aktion mit allen Nachkommen von TDataSet verwendet werden.Wie kann ich herausfinden, ob ein DataSet der Master in einer Master/Detail-Beziehung in Delphi ist?

Antwort

10

Sie sollten TDataSet anrufen. GetDetailDataSets Methode. Wenn die Liste nicht leer ist, ist dieses Dataset das Master-Dataset für die Datasets in der Liste. Zum Beispiel:

var 
    oDetails: TList; 
    lIsMaster: Boolean; 
... 
    oDetails := TList.Create; 
    try 
    myDataSet.GetDetailDataSets(oDetails); 
    lIsMaster := oDetails.Count > 0; 
    finally 
    oDetails.Free; 
    end; 
Verwandte Themen