Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.007 c
3-67677
seregin
2003-06-26 14:34
2003.07.21
IB/FB - Запрос по подзапросу с группировкой


3-67675
Brain Force
2003-06-26 14:55
2003.07.21
Помогите с QuickReports


4-68111
likeanangel
2003-05-19 19:10
2003.07.21
Работа с реестром


14-68076
craker
2003-07-06 02:15
2003.07.21
Лето-времени много, игроделы объединяйтесь!!!


14-68001
MetalFan
2003-07-04 07:36
2003.07.21
DBGrid.SelectedRows





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский