Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Вниз

Связь один ко многим   Найти похожие ветки 

 
ST_   (2003-11-07 01:51) [0]

Многоуважаемый ALL, вот тебе ещё один вопрос. Необходимо связать две таблицы связью один ко многим в Pararox 7. Мои действия:
1) В первой (главной) таблице создаю поле Ind1 типа AutoIncrement.
2) В подчинённой тиблице создаю поле Ind2 типа Long Integer.
3) В подчинённой таблице создаю secondary index Ind1 -- Ind2
4) Выставляю всё в delphi.
Теперь при редактировании подчиненной таблици, когда я создаю вторую запись мне вылетает мат "Index Violation", и вылетает, пока я не удалю одну из зиписей. Как это порешать?


 
ST_   (2003-11-07 02:04) [1]

Прошу прощения, не Index Violation, а Key Violation!


 
MsGuns   (2003-11-07 13:25) [2]

Чтобы бала возможна связь "Один-ко-многим", надо, чтобы в подчиненной таблице было хотя бы на одно поле-ключ (или ун.индекс) больше, чем в основноу (мастер) таблице. Т.е. в твоем примере, у детальной таблицы должно быть как min 2 поля:
1. ind1 (или с любым другим именем) - для связки с мастером
2. ind2 - собств.уник.поле (Primary или Secondary index)


 
MsGuns   (2003-11-07 13:38) [3]

Блин, коряво получилось ;( Попробую на примере:

БД лицевых счетов плательщиков каб. TV
-----------------------------------------

Таблица плательщиков (Master):
1. ID int (autoinc) идент-р плательщика Primary Key
2. FAM Varchar Фамилия
3. NAM Varchar Имя
4. NAM2 Varchar Отчество
5.. Адрес + доп. информация

Таблица проплат (Detail)
1. ID int (autoinc) идент-р платежа Primary Key
2. IDP int (связка с Master) PK или Un.Index
3. PDAT Date дата платежа
4. PSUM Currency Сумма платежа
5.. данные о РС, МФО и др.


 
Виталий Панасенко   (2003-11-07 17:09) [4]

Во-первых, в подчиненной таблице должно быть как минимум два поля в Primary Index - Ind2 и еще одно типа AutoIncrement для обеспечения уникальности индекса (по двум полям - а так у вас дублируется значение Ind2 из главной таблицы, что противоречит понятию Primary Key).. Во-вторых, в обработчике подчиненной таблицы OnNewRecord Ind2 подчиненной таблицы присваивать значение Ind1 главной - и все будет (должно) работать...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.11.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.013 c
7-90141
LexaVV
2003-09-17 10:02
2003.11.27
MAC адрес, BIOS


3-89693
Василиск
2003-11-06 11:27
2003.11.27
Как бороться с сообщениями сервера?


11-89800
tamerlan311
2003-03-20 16:43
2003.11.27
плагин включающий не модальную форму!


6-90046
Tron
2003-09-23 21:25
2003.11.27
Как для компонента WebBrowser зделать кнопку назад?


1-89998
Saturn
2003-11-17 10:34
2003.11.27
Греческий алфавит





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