Voglio creare un'azione "Duplicate Record" che, una volta invocato, duplica il record corrente in qualsiasi discendente TDataSet
. Come posso sapere se il set di dati è il set di dati master di una relazione principale/dettaglio? Con TClientDataSet
è piuttosto facile, ma ho bisogno di questa azione da utilizzare con tutti i discendenti di TDataSet
.Come posso trovare se un DataSet è il master in una relazione principale/dettaglio in Delphi?
6
A
risposta
10
È necessario chiamare TDataSet
. Metodo GetDetailDataSets
. Se l'elenco non è vuoto, questo set di dati è il set di dati principale per i set di dati nell'elenco. Ad esempio:
var
oDetails: TList;
lIsMaster: Boolean;
...
oDetails := TList.Create;
try
myDataSet.GetDetailDataSets(oDetails);
lIsMaster := oDetails.Count > 0;
finally
oDetails.Free;
end;