2012-08-28 3 views
6

"중복 레코드"작업을 만들고 싶습니다.이 작업을 호출하면 임의의 TDataSet 하위 레코드에서 현재 레코드를 복제합니다. 데이터 셋이 마스터/디테일 관계의 마스터 데이터 세트인지 어떻게 알 수 있습니까? TClientDataSet을 사용하면 다소 쉽지만이 작업을 TDataSet의 모든 자손과 함께 사용해야합니다.DataSet이 Delphi에서 마스터/세부 관계의 마스터인지 어떻게 알 수 있습니까?

답변

10

TDataSet으로 전화하십시오. GetDetailDataSets 방법. 목록이 비어 있지 않으면이 데이터 집합은 목록의 데이터 집합에 대한 마스터 데이터 집합입니다. 예 :

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