Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I find if a DataSet is the master in a master/detail relationship in Delphi?

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.

like image 472
iMan Biglari Avatar asked Aug 28 '12 10:08

iMan Biglari


1 Answers

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;
like image 104
da-soft Avatar answered Sep 22 '22 16:09

da-soft