Domanda

I want to create a "Duplicate Record" action which when invoked, duplicates current record in any TDataSet descendant. How can I find out if the dataset is the master dataset of a master/detail relationship? With TClientDataSet it's rather easy, but I need this action to be used with all descendants of TDataSet.

È stato utile?

Soluzione

You should call TDataSet.GetDetailDataSets method. If the list is not empty, then this dataset is the master dataset for the datasets in the list. For example:

var
  oDetails: TList;
  lIsMaster: Boolean;
...
  oDetails := TList.Create;
  try
    myDataSet.GetDetailDataSets(oDetails);
    lIsMaster := oDetails.Count > 0;
  finally
    oDetails.Free;
  end;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top