Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.02;
Скачать: CL | DM;

Вниз

Есть ли в Paradox каскадное удаление?   Найти похожие ветки 

 
__alex ©   (2006-05-08 19:24) [0]

Берем 2 таблицы (Paradox 7), связываем их по некому полю отношением один-ко-многим. Update rule выбираем Cascade. И потом пытаемся удалить запись из главной (master) таблицы.
Если при этом в подчиненной таблице существует одна или несколько записей, соответствующих выбранной в главной таблице записи, то получаем такую ошибку:
Master has detail records. Cannot delete or modify.
Я что то делаю не так или в paradox и правда нет возможности каскадного удаления?


 
mike-d ©   (2006-05-08 19:34) [1]


> Есть ли в Paradox каскадное удаление?

Нет. Есть только каскадный UPDATE.


 
__alex ©   (2006-05-08 20:19) [2]

Тогда такой вопрос. В описаном выше случае где одна мастер-таблица и одна подчиненная, каскадное удаление можно организовать простеньким sql-запросом вроде
DELETE FROM detailTable WHERE Id=...
ну и потом удаление записи в мастер-таблице.
Но че делать если у нас например 3 или более таблиц:
table1 (master-detail) table 2 (master-detail) table3
и надо удалить запись из "самой главной" таблицы table1? Че то на ум ничего хорошего не приходит кроме перелопачивания всех записей в рекурсии. А никак это попроще нельзя сделать? Ну не обязательно sql-запросом, может другое какое решение есть?


 
mike-d ©   (2006-05-08 22:53) [3]


> на ум ничего хорошего не приходит кроме перелопачивания
> всех записей


Ничего и не придет наверное больше :)

Повесь удаление detail"ов на BeforeDelete master-таблицы - примерно так:

procedure Data.Table1BeforeDelete(...);
begin
 Table2.First;
 while not Table2.Eof do Table2.Delete;
end;

procedure Data.Table2BeforeDelete(...);
begin
 Table3.First;
 while not Table3.Eof do Table3.Delete;
end;


 
__alex ©   (2006-05-08 23:17) [4]

Угу, ты прав, mike-d... Блин, неудобно все это...



Страницы: 1 вся ветка

Текущий архив: 2006.07.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
1-1148291576
Steplerr
2006-05-22 13:52
2006.07.02
Эффективный поиск в Excel


15-1149513475
infom
2006-06-05 17:17
2006.07.02
Компоненты для работы с большими целыми числами.


3-1146729002
Lex_!
2006-05-04 11:50
2006.07.02
PopupMenu+DBTable формирование меню на основе таблици


1-1148470396
Piero
2006-05-24 15:33
2006.07.02
Как прятать дочернюю форму


2-1150105269
Fiallo4ka
2006-06-12 13:41
2006.07.02
не работает навигатор