Каскадное обновление (access - Ado - Delphi)

  • Автор темы VoodyGoo
  • Дата начала
V

VoodyGoo

В Аксесе имеется некоторое количество таблиц, связанных между собой ключами. На схеме данных все связи указаны, включена опция каскадного обновления данных в дочерних таблицах.
При работе в самом Аксесе При изменении значения записи в родительской таблице значения меняются и в дочерних таблицах, но вот когда работаешь с этой же таблицей из Делфи (АДО), то никаких каскадных обновлений не наблюдается. Изначально решил реализовать это косяк запросами, вызываемыми при редактировании, но вот их количество меня не очень то обрадовало, уж очень много таблиц((( Может кто что подскажет как воспользоваться возможностями Аксеса..
 
S

Silver Wind

VoodyGoo
Рекомендую хорошую статью по этому поводу (там несколько частей ссылки на следующие части в конце статьи). Посмотри.
 
V

VoodyGoo

Быть того не может.
Наврно вы правы.
Просто у меня структура базы неправильна наверное.
Тут в общем такая ситуация(опишу 2 таблицы):
Блюда(ID_Bl, Name, Cena)
СпиокБлюдНаРейс(ID_S, ID_Bl, Name[из таблицы блюда],...)

Таблица СпиокБлюдНаРейс запоняется запросом (Insert into), пользователь выбирает из табл. Блюда, и оно параметром в запрос поадает. Звязь таблиц происходит по полю ID_B (контроль целостности и обновление в при создании связи указывал). И при изменении поля Name в таблице Блюда в таблице СпиокБлюдНаРейс это поле не обновляется (даже в аксесе).
В чем ошибка всего этого...?

Наврно вы правы.

В чем ошибка всего этого...?

Урра! Разобрался!! Надо было всего то сделать составной ключ!!! в дочерней таблице ссылочное поле из родительской таблицы включить в состав ключа
 
E

etc

И при изменении поля Name в таблице Блюда в таблице СпиокБлюдНаРейс
А зачем его менять? Вот на рейс загрузили (ну или что там у вас) всякие блюда, с названиями и рейс ушел, люди уже чтото даже съели, а тут им говорят, что они съели совсем не то что они думают. По моему ерунда получаеться. :rolleyes:
 
V

VoodyGoo

А зачем его менять?
Ну всякое бывает, вот например сегодня ингридиент какойто называется "Колбаса Московская", а завтра поставщик, или товар меняется, и название товара тоже, хотя фактически он остался тем, чем и был, и чтоб не удалять старый ингридиент, и не вносить в БД кучу новых данных(стоимости, раскладка в блюдах... и т.д.), в родительской таблице меняшь его имя, и если надо стоимость, и всё). Мне это так объяснили...
Я ведь исполнитель, а заказчику так надо, вот и реализую все ихние "хотелки"
 
E

etc

Если надо менять, то смысл в дублировании информации? опять не все красиво в итоге.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!