Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Каскадное обновление (access - Ado - Delphi)
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Базы данных
VoodyGoo
В Аксесе имеется некоторое количество таблиц, связанных между собой ключами. На схеме данных все связи указаны, включена опция каскадного обновления данных в дочерних таблицах.
При работе в самом Аксесе При изменении значения записи в родительской таблице значения меняются и в дочерних таблицах, но вот когда работаешь с этой же таблицей из Делфи (АДО), то никаких каскадных обновлений не наблюдается. Изначально решил реализовать это косяк запросами, вызываемыми при редактировании, но вот их количество меня не очень то обрадовало, уж очень много таблиц((( Может кто что подскажет как воспользоваться возможностями Аксеса..
etc
Цитата(VoodyGoo @ 9:07:2008 - 13:20) *
когда работаешь с этой же таблицей из Делфи (АДО), то никаких каскадных обновлений не наблюдается.
Быть того не может.
Silver Wind
VoodyGoo
Рекомендую хорошую статью по этому поводу ]]>Немного об использовании ADO в Delphi]]> (там несколько частей ссылки на следующие части в конце статьи). Посмотри.
VoodyGoo
Цитата(etc @ 9:07:2008, 14:10 ) *
Быть того не может.

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

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

Цитата(VoodyGoo @ 10:07:2008, 08:32 ) *
Наврно вы правы.

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


Урра! Разобрался!! Надо было всего то сделать составной ключ!!! в дочерней таблице ссылочное поле из родительской таблицы включить в состав ключа
etc
Цитата(VoodyGoo @ 10:07:2008 - 09:55) *
И при изменении поля Name в таблице Блюда в таблице СпиокБлюдНаРейс
А зачем его менять? Вот на рейс загрузили (ну или что там у вас) всякие блюда, с названиями и рейс ушел, люди уже чтото даже съели, а тут им говорят, что они съели совсем не то что они думают. По моему ерунда получаеться. smile.gif
VoodyGoo
Цитата(etc @ 10:07:2008, 13:29 ) *
А зачем его менять?

Ну всякое бывает, вот например сегодня ингридиент какойто называется "Колбаса Московская", а завтра поставщик, или товар меняется, и название товара тоже, хотя фактически он остался тем, чем и был, и чтоб не удалять старый ингридиент, и не вносить в БД кучу новых данных(стоимости, раскладка в блюдах... и т.д.), в родительской таблице меняшь его имя, и если надо стоимость, и всё). Мне это так объяснили...
Я ведь исполнитель, а заказчику так надо, вот и реализую все ихние "хотелки"
etc
Если надо менять, то смысл в дублировании информации? опять не все красиво в итоге.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.