Im
Event BeforeDelete greifst du dir den Wert des Primärschlüsselfeldes ab:
Delphi-Quellcode:
procedure TForm1.MasterTableBeforeDelete(Dataset:TDataset);
var
masterkey : string;
begin
masterkey := Dataset['PrimaerschlFeld'];
// hier werden später die Detaildatensätze gelöscht
...
end;
Damit kannst du dir mit einer weiteren
SQL-Anweisung die Detaildatensätze löschen:
Delphi-Quellcode:
procedure TForm1.DeleteDetail1ByMasterkey(const masterkey:string);
begin
QueryDel1.SQL.Text := 'DELETE FROM DetailTable1 WHERE MKey='+QuotedStr(masterkey);
QueryDel1.Execute;
end;
Hinweis: Übergabe des masterkey in der WHERE Bedingung sollte über einen Parameter erfolgen.
Das habe ich mir gespart, weil es so einfacher zu verstehen ist.
PS: bei einer
richtigen Datenbank werden Detaildaten bei Bedarf automatisch gelöscht.
Paradox ist aber zu alt dafür.