Форум: "Базы";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
Вниз
Удаляются связанные записи! Найти похожие ветки
← →
Ximik (2003-06-22 02:45) [0]Удаляются записи!
Работаю с базой Access 2000 через ADO из Delphi 6.
Имеем две таблицы Т1 и Т2, связанные через MasterSource.
Т1 – главная, Т2 – подчиненная (справочник).
Если удаляю запись в Т1, то удаляется и запись в Т2.
Удаляю так DeleteRecords(arCurrent)
После такого удаления если в Т1 остались записи, ссылающиеся на
справочник, то они не видны L
Как этого не допустить? Т.е. удалять записи из Т1 и не трогать связи в Т2.
Пробовал ставить Т2 в ReadOnly – по-барабану.
Help!
← →
ЮЮ (2003-06-23 02:40) [1]Правильно организовать связи. Справочник, IMHO, всегда главная таблица по отношению к таблице, его использующей. Зачем вообще организовывать связь со справодником ч/з MasterSource ???
← →
Babay (2003-06-23 07:29) [2]почитай три статьи в королевтве дельфи "Немного об использовании ADO в Delphi. "
вот ссылка на вторую остальные думаю сам найдешь
http://delphi.vitpc.com/helloworld/ado02.htm
← →
ximik (2003-06-23 10:14) [3]Справочник к сожалению не вегда главная таблица :(
К таблице Т1 цепляются две таблицы типа справочник. Так что они обе главные?
А связь через мастерсорс организована потому, что иначе не получается сортировка и фильтр в нормальном виде. В таблицах Т2 и Т3 по 5-6 полей. Дык вот через мастерсорс я могу сортировать и фильтровать по ЛЮБОМУ полю, даже из связанной таблицы, а например если связь через LookUp, то только по ключевому полю.
Вопрос открыт! Help!
← →
ЮЮ (2003-06-24 03:41) [4]>Справочник к сожалению не вегда главная таблица :(
>К таблице Т1 цепляются две таблицы типа справочник. Так что они >обе главные?
Да, они оба главные. Но не в смысле, что их надо связывать ч/з MasterSource, а потому, чт0 имеется связь один ко многим, т.е. одной записи в справочнике соответствует много записей в таблице, а не наоборот, что делаешь ты, подчиняя справочник текущей записи таблицы.
>А связь через мастерсорс организована потому, что ...
Станные выводы и "нетривиальное" решение :-)
>Дык вот через мастерсорс я могу сортировать и фильтровать по ЛЮБОМУ полю
Что именно ты хочешь фильтровать? Главную таблицу или справочники?
>Вопрос открыт! Help!
Пожалуй, стоит начать со структуры, что хочешь получить и как это делаешь
← →
ximik (2003-06-27 02:47) [5]Да вот нифига подобного :)
Структура подобрана правильно
т.к. если сделать главным справочник, то по нему придется по сто раз в день лазить и смотреть все записи, чтобы узнать что нового добавилось в таблице Т1. При использовании же Т1 в кач-ве главной и добавлении в нее новой записи никуда лазить не надо. Все под руками и все прекрасно сортируется и фильтруется.
Спасибо Babay за ссылочку. Проблемка решена с использованием Unique Table.
P.S. To ЮЮ: Справочник всю жизнь и везде был дополнением и по своей природе дожен быть перманентным. Я просто ко многим записям беру из него данные. На кой рожон он мне нужен главным?
А наличие связи один ко многим еще не делает таблицу главной, в смысле логики. Одну и ту же задачу можно решить разными правильными методами. :) А такое нетривиальное решение выбрано, чтобы конечному пользователю было удобно работать, о чем многие к сожалению забывают :(
← →
ЮЮ (2003-06-27 04:57) [6]>А такое нетривиальное решение выбрано, чтобы конечному пользователю было удобно работать, о чем многие к сожалению забывают :(
Вот тут поподробнее. Зачем пользователю таблица-справочник, в которую нельзя добавить, из которой нельзя удалить, но при удалении из Т1 он теряет и запись из справочника? Действительно, нетривиальное решение :-)
Подумай,что ты потеряешь, если уберешь из приложения эту вывернутую наизнанку Мастер-Детайл связь, кроме головной боли ?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c