Главная страница
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.013 c
3-30691
AlexNord
2002-05-06 02:19
2002.06.10
UpadteSQL...:(


1-30822
Wins
2002-05-31 13:58
2002.06.10
создать doc - файл и заполнить в нем таблицу


6-30962
Фредди
2002-03-28 22:20
2002.06.10
Кто нибудь писал веб-сервер на Дельфи?


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


3-30702
studentik
2002-05-17 19:38
2002.06.10
Распространение приложения