2012-08-28 14 views
6

Tôi muốn tạo một hành động "Bản ghi trùng lặp" khi được gọi, sao y bản ghi hiện tại trong bất kỳ hậu duệ TDataSet nào. Làm cách nào để tìm hiểu xem tập dữ liệu có phải là tập dữ liệu chính của mối quan hệ chính/chi tiết không? Với TClientDataSet nó khá dễ dàng, nhưng tôi cần hành động này để được sử dụng với tất cả các hậu duệ của TDataSet.Làm thế nào tôi có thể tìm thấy nếu một Số liệu là chủ trong mối quan hệ chính/chi tiết trong Delphi?

Trả lời

10

Bạn nên gọi TDataSet. GetDetailDataSets. Nếu danh sách không trống, thì tập dữ liệu này là tập dữ liệu chính cho các tập dữ liệu trong danh sách. Ví dụ:

var 
    oDetails: TList; 
    lIsMaster: Boolean; 
... 
    oDetails := TList.Create; 
    try 
    myDataSet.GetDetailDataSets(oDetails); 
    lIsMaster := oDetails.Count > 0; 
    finally 
    oDetails.Free; 
    end; 
Các vấn đề liên quan