![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как связать две таблицы? [D6, Paradox]
V l a d i m i r © (2004-05-08 15:52:00)У меня две таблицы: главная Dep и подчиненная ProfitStatment. Необходимо, чтобы при выделении определенной записи таблицы Dep отображались все записи таблицы ProfitStatment, соответствующие выделенной. А при удалении из главной таблицы определенной записи удалялись бы все данные из подчиненной таблицы, связанные с удаляемой записью. Подскажите, пожалуйста, как это можно сделать?
varfix (2004-05-10 20:14:00) [1]В BeforeDelete работает так.
with Table2 do begin
DisableControls;
FindKey([Table2.Fields[0].AsString]);
while (Table2.Fields[0].AsString = Table1.Fields[0].AsString) and
(not Eof) do
begin
if MessageDlg('Вы точно хотите удалить все записи+'?', mtInformation, mbOkCancel, 0) <> mrOk then
Abort
else
Delete;
end;
EnableControls;
end;
Anatoly Podgoretsky (2004-05-09 19:46:00) [2]V l a d i m i r (08.05.04 16:17) [2]
Лучше удалять в BeforeDelete меньше проблем будет.
А вот в AfterDelete тяжеловато будет сделать while Table2 головной то записи уже не будет.
mike-d (2004-05-09 19:30:00) [3]> Vlad © (08.05.04 16:46) [4]
Лучше на BeforeDetete ...
> V l a d i m i r (08.05.04 17:11) [5]
Table2.First;
while not Table2.Eof do Table2.Delete;
V l a d i m i r (2004-05-08 17:11:00) [4]То есть в событии AfterDelete головной таблицы удаляю все записи из подчиненной: while Table2.RecCount<>0 Table2.delete?
Vlad (2004-05-08 16:46:00) [5]Один из вариантов, на событие AfterDelete мастер-датасета повесить код удаления из детайл-датасета.
Vlad (2004-05-08 16:22:00) [6]
> V l a d i m i r (08.05.04 16:17) [2]
> Как это исправить?
А это не ошибка. Мастер-детайл отношения нужны лишь для отображениянескольких связанных таблиц. Удалять нужно самому.
V l a d i m i r (2004-05-08 16:17:00) [7]Обе таблицы проиндексированы и я связал их по индексированному полю через MasterSourse в инспекторе подчиненной таблицы. При этом все замечательно: выделяю запись в главной таблице, отображаются связанные с нею записи в подчиненной.
Но проблема состоит в том, что удаляя запись в главной таблице, записи из подчиненной не удаляются...
Как это исправить?
Vlad (2004-05-08 16:05:00) [8]
> V l a d i m i r (08.05.04 15:52)
см. справку, master/detail relationships