如何在Delphi中查找DataSet是否为主/详细关系中的主服务器?

时间:2012-08-28 10:16:42

标签: delphi master-detail tdataset

我想创建一个“重复记录”操作,在调用时,会复制任何TDataSet后代中的当前记录。如何确定数据集是否为主/明细关系的主数据集?使用TClientDataSet它很容易,但我需要将此操作与TDataSet的所有后代一起使用。

1 个答案:

答案 0 :(得分:10)

您应该调用TDataSetGetDetailDataSets方法。如果列表不为空,则此数据集是列表中数据集的主数据集。例如:

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