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

Вниз

IBx - Master & Detail   Найти похожие ветки 

 
Normal   (2002-05-17 13:44) [0]

Вот такой вопро - есть две таблицы, связанные как Master & Details. Такой вопрос - добавляю в detail таблицу запись. А как обеспечить значение foreign ключа ? В триггере почему-то ругается, когда ему говорят :
NEW.IdSecond = MASTER.IdSecond
Как сие разрулить ?


 
Desdechado   (2002-05-17 15:13) [1]

дык, запись должна добавляться с конкретным ключом из Master, а не с каким-попало. Поэтому это присваивается не в триггере, а в операторе добавления записи.


 
Normal   (2002-05-17 15:29) [2]

Дык а как его узнать-то конкретный ключ ? Select max(idsecond) from master ? так что ли ?


 
Val   (2002-05-17 16:06) [3]

причем тут max..? вы ведь запись в дочерней таблице к какой-то конкретной мастер-записи создаете, а не к последней? Так из нее (конкретной)и берите этот самый ID. Запросы для чего?


 
Desdechado   (2002-05-17 19:05) [4]

похоже, ты недопонимаешь понятие мастер-деталь.
мастер - проще говоря, справочник. в нем значение уже должно быть.
деталь - таблица, которая одним из полей включает ссылку на справочник. при добавлении в нее берется уже готовое значение из справочника и заполняются остальные поля.

вот и сформулируй теперь вопрос по-новому


 
normal   (2002-05-18 07:48) [5]

Хорошо. Предположим я добавил записи в Master. Их скажем 10. Теперь мне нужно добавить 2 записи в Detail, ориентируясь на запись 3 в Master. Теперь я добавляю запись в Detail. Соответственно, чтобы обеспечить целостность, я должен указать в качестве значения вторичного ключа в Detail значение ключа в Master, которое соответствует записи N 3. Средствами Delphi это просто - Detail.OnNewRecord : DetailIdSecond.AsInteger := MasterIdSecond.Value. А как это сделать на самом сервере IB ???


 
Johnmen   (2002-05-18 09:11) [6]

Никак, поскольку в базе нет никаких взаимосвязей (кроме ограничения целостности) между двумя таблицами !
Такие всаимоствязи (Master-Detail) всегда организуются в приложении.



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

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

Наверх





Память: 0.46 MB
Время: 0.008 c
1-30785
Random
2002-05-30 20:35
2002.06.10
Сортировка по алфавиту


1-30904
kaldr
2002-05-30 08:06
2002.06.10
Speedbutton


1-30744
MV-GROB
2002-05-30 12:45
2002.06.10
Почему форма закрывается


3-30703
KOA
2002-05-18 12:33
2002.06.10
Убрать удаление записей в базе


1-30843
Kozerog
2002-05-29 10:41
2002.06.10
Не уживаются три компонента - даю код.





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