В общем случае можно делать так:
| Код | var Cascade: boolean = nil; // флаг каскадного удаления ............. procedure TDataModule.MasterTableBeforeDelete(DataSet: TDataSet); begin Cascade := true; while not DetailTable.IsEmpty do DetailTable.Delete; Cascade := false; end;
procedure TDataModule.DetailTableBeforeDelete(DataSet: TDataSet); begin if not Cascade then if MessageBox(..........) <> ID_YES then abort; end; |
Флаг нужен, чтобы MessageBox не вылазил на каждой записи при каскадном удалении. Добавлено @ 16:02 В парадоке есть опция Cascade, но она ничего не удаляет, а просто не позволяет удалить мастер-запись, для которой есть деталь-записи, т.е. просто ограничение. Для акцесса не знаю. |