Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.10;
Скачать: 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 вся ветка

Текущий архив: 2002.06.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
1-30867
MViper
2002-05-29 16:47
2002.06.10
Работа с dll


6-30948
kerrik
2002-01-20 17:41
2002.06.10
Как написать сервер удалённого доступа под Win98?


1-30875
KilkennyCat
2002-05-29 20:02
2002.06.10
Глюк с копированием на Cаnvas формы


3-30676
ВоВ
2002-05-17 07:41
2002.06.10
Открыть файл DBase


1-30896
dimich
2002-05-30 09:01
2002.06.10
Вопрос про TreeView