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

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

VoodyGoo

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

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

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

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

Урра! Разобрался!! Надо было всего то сделать составной ключ!!! в дочерней таблице ссылочное поле из родительской таблицы включить в состав ключа
 
И при изменении поля Name в таблице Блюда в таблице СпиокБлюдНаРейс
А зачем его менять? Вот на рейс загрузили (ну или что там у вас) всякие блюда, с названиями и рейс ушел, люди уже чтото даже съели, а тут им говорят, что они съели совсем не то что они думают. По моему ерунда получаеться. :rolleyes:
 
А зачем его менять?
Ну всякое бывает, вот например сегодня ингридиент какойто называется "Колбаса Московская", а завтра поставщик, или товар меняется, и название товара тоже, хотя фактически он остался тем, чем и был, и чтоб не удалять старый ингридиент, и не вносить в БД кучу новых данных(стоимости, раскладка в блюдах... и т.д.), в родительской таблице меняшь его имя, и если надо стоимость, и всё). Мне это так объяснили...
Я ведь исполнитель, а заказчику так надо, вот и реализую все ихние "хотелки"
 
Если надо менять, то смысл в дублировании информации? опять не все красиво в итоге.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab