Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
1-30790
Данькин Дмитрий
2002-05-31 09:31
2002.06.10
Нужна помощь, я в отчаянии :-)


1-30880
Spartak
2002-05-29 21:38
2002.06.10
Пожайлуста помогите с вопросом.


3-30710
diww
2002-05-18 13:27
2002.06.10
не определяется тип поля


3-30677
Chainik
2002-05-17 13:23
2002.06.10
Выборка первых 2-х цифр из поля таблицы


1-30780
Олег Лаукарт
2002-05-30 21:11
2002.06.10
Как включить в проект пакет (bpl)




   Наверх