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

Вниз

Как удалить записи   Найти похожие ветки 

 
apl   (2006-05-30 08:46) [0]

Есть достаточно сложная база данных, пара сотен таблиц, представления, десятки процедур. Необходимо удалить некоторые записи. Если у записи в главной таблице нет подчиненных записей вообще, то запись удаляется при помощи ADOCommand. Если подчиненные записи есть, то не удаляет. Причем кол-во подчиненных записей есть не во всех таблицах.
Как вычислить (определить) все таблицы в которых нужно удалять записи, и, я подозреваю, что удалять нужно в определенном порядке от подчиненных таблиц к основной.


 
ORMADA ©   (2006-05-30 08:55) [1]

через системные таблицы посмотри зависимости таблиц
НО! лучше делать это самому т.к. непонятно куда могу привести такие КАСКАДНЫЕ удаления!

сделай сторпроц и вызывай его с необходимыими параметрами...
главное не забудь про транзанкцию
т.к. удалять надо всё сразу или ничего!

>то запись удаляется при помощи ADOCommand
хошь удалю при помощи АдоКвери?
ExecSql есть и в квери и в команд!

>я подозреваю, что удалять нужно в определенном порядке от подчиненных таблиц к основной.
правильно мыслишь!


 
apl   (2006-05-30 09:35) [2]

А где в системных таблицах-то посмотреть что от чего зависит?


 
ЮЮ ©   (2006-05-30 09:41) [3]

и, я подозреваю, что удалять нужно в определенном порядке от подчиненных таблиц к основной.

А я подозреваю, что удалять можно только в соответствии с бизнес-логикой.
Если где-то в справочнике нашлась корявая запись вовсе не следует, что нужно убивать записи в другой таблице, которые на неё сослались. Ну а если именно бизнесс-логика требует такого удаления, то следует знать и помнить структуру БД и прописать удаление связанных записей хоть в процедурах, хоть в триггерах, а не строит универсального убийцу записей.


 
apl   (2006-05-30 10:42) [4]

так мне и надо восстановить эту бизнес-логику
В своих разработках понятно гораздо проще, а если разгребаешь чужое наследство?


 
Sergey13 ©   (2006-05-30 10:50) [5]

2[4] apl   (30.05.06 10:42)
>а если разгребаешь чужое наследство?
То выгодно воспользоваться CASE инструментами типа ERWin и реинжинирингом базы.


 
ЮЮ ©   (2006-05-30 10:59) [6]

В EM создаешь диаграму, кидаешь нужную таблицу, задаешь нужный уровень вложенности и начинаешь разгребать таблицы, улавливая бизнес-логику.



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

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

Наверх




Память: 0.48 MB
Время: 0.05 c
15-1151944074
sdf13
2006-07-03 20:27
2006.08.06
можно ли писать на Delphi под Pocket PC?


2-1153132968
Megabyte
2006-07-17 14:42
2006.08.06
Непонятки в 3-хзвенке


2-1153322064
Константинов
2006-07-19 19:14
2006.08.06
Консольное приложение нечитаемые символы


15-1152184451
Gero
2006-07-06 15:14
2006.08.06
Работал ли кто с Active Accessibility?


2-1152886626
дмитрий _делфи
2006-07-14 18:17
2006.08.06
делаю игру. надо сделать пульки.