Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];

Вниз

Referential Integrity и каскадное удаление   Найти похожие ветки 

 
alex_ran   (2002-10-31 12:36) [0]

Доброго всем времени суток!
Недавно прочитал в одной книге, посвященной работе с БД, что задание ссылочной целостности работает на физическом уровне и корректно поддерживается как утилитами BDE, так и компонентами доступа к БД из Делфи. Я попробовал установить такую связь между двумя таблицами и задал Update Rule в Cascade. При этом я ожидал, что при удалении (редактирования) записи в главной таблице удалятся (изменятся) все связанные с ней в подчиненной. Однако этого не происходит :). Вначале приходится вручную поработать с подчиненной таблицей :(. Хотя в книге написано что при установке Update Rule в Cascade это должно происходить автоматически. Подскажите, плиз, что я делаю неправильно.


 
MsGuns   (2002-10-31 12:58) [1]

Не гарантирую, но по-моему для локальных таблиц каскадное удаление просто не работает. Не без глюков поддерживается и целостность. Или делай локальные триггера (т.е."ручечное" удаление/изменение в подчиненных таблицах) или переходи на IB, например (FireBird)


 
alex_ran   (2002-10-31 13:17) [2]

Самое интересное, что ,насколько мне позволил мой английский, по-моему в хелпе по Database Desktop сказано тоже самое (о автоматическом удалении) Вот дословно:
Cascade
Cascade specifies that any change you make to the value in the key of the parent table is automatically made in the child table. If you delete a value in the key of the parent table, dependent records in the child table are also deleted. Cascade is the default update rule.

Это не работает только для Парадокса или для любых локальных БД?


 
MsGuns   (2002-10-31 13:26) [3]

В самой BDE полно глюков (а с локалками в псеновном и работает BDE), а документации ее еще больше. Чего стоит постоянное провисание на механизме блокировок (lck) или хронический понос при "вылетах" проги, оставляющей таблу в инсерте, что приводит на 50% к нарущению ключей или индексов. При всем моем уважении к Борланду не могу не отметить, что он страдает "американской улыбчивостью" в полной мере. Т.е. выдает желаемое за действительное. Во всяком случае, при написании надежного проекта я бы не доверял BDE, а делал бы все прогой сам.
Сам не могу отказаться от Paradox, т.к. больно, подлец, реактивен. Таблы перелинковываются со сверхзвуковой скоростью и курсор бегает шустро даже на чудовищных объемах (десятки и сотни тысяч записей)


 
alex_ran   (2002-10-31 13:53) [4]

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



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

Форум: "Базы";
Текущий архив: 2002.11.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
3-69113
pavelsinicinV
2002-11-03 20:29
2002.11.21
Aизический номер записи в таблице через SQL запрос


1-69314
RDA
2002-11-12 16:37
2002.11.21
Указатели.


1-69357
SiaCD
2002-11-13 01:48
2002.11.21
Колличество строк в ListBox


14-69562
Txxx
2002-11-01 21:56
2002.11.21
Вопрос по Си


14-69533
SV
2002-11-02 14:49
2002.11.21
Мама, где ты?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский