Главная страница
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.03 c
2-1152987046
SergP
2006-07-15 22:10
2006.08.06
Как скрыть кнопку в панели задач?


2-1153212810
Pashka.cool
2006-07-18 12:53
2006.08.06
Как по дескриптору окна или ещё чему-нить получить сам экземпляр


15-1152612098
wicked
2006-07-11 14:01
2006.08.06
посоветуйте почтовик...


15-1152498011
Мазут Береговой
2006-07-10 06:20
2006.08.06
Не были славяне безграмотными!


2-1153196270
Rubey
2006-07-18 08:17
2006.08.06
Компонент в STRINGGRIDE