Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

master-detail [D6, IB6.x]


Страницы:   1 2

Xmen ©   (2005-07-04 09:59:00) 

Привет всем!!!
Вот хотел сделать связь master-detail, вроде бы получилось связь установлен и когда ввожу данные то все ОК но когда хотел сохранить данные даёт ошибку 'violation of foregn key constraint "FK_DATA2" on table "DATA2".
Кто небуд сталкивался с такой проблемой?
Для того чтобы был понятнее могу выслать код с базой. Вчера с утра до вечера посидел решая эту проблему, но никак не вышло. Как можно сделат связь правилно. Если можно дайти простой пример. В хелпах Делфи покапался, но непонял.


Anatoly Podgoretsky   (2005-07-04 11:54:00) [21]

Stakan ©   (04.07.05 11:33) [6]
Что тебя так сильно испугало?


Ярослав   (2005-07-04 11:53:00) [22]

>> Stakan ©   (04.07.05 11:39) [8]
Ну тогда понятно


Xmen   (2005-07-04 11:52:00) [23]

2Ярослав   (04.07.05 11:33) [5]

А когда вносишь запись в подчиненную таблицу, ID главной ей не забываешь присваивать?

В проги для этого делаю
procedure TForm1.qrData1NewRecord(DataSet: TDataSet);
begin
 qrData1['Data1_id']:=qrMain['id'];
end;


Stakan   (2005-07-04 11:39:00) [24]

Ярослав   (04.07.05 11:35) [7]
Это я не про ошибку, а вообще.
Про ошибку я уже сказал, очевидно, что при добавлении в табл. DATA1, DATA1_ID не совпадает ни с одним ID из табл. MAIN


Ярослав   (2005-07-04 11:35:00) [25]

>> Stakan ©   (04.07.05 11:33) [6]
??? Причем тут это?


Stakan   (2005-07-04 11:33:00) [26]

Xmen   (04.07.05 11:28) [3]
А почему в таблице DATA1 нет первичного ключа?
И зачем on update cascade? Ты что собираешся менять перв. ключ в MAIN?


Ярослав   (2005-07-04 11:33:00) [27]

А когда вносишь запись в подчиненную таблицу, ID главной ей не забываешь присваивать?


Digitman   (2005-07-04 11:31:00) [28]


> Кто небуд сталкивался с такой проблемой?


Кто Небуд - он точно сталкивался.
Он с чем только не сталкивался


Xmen   (2005-07-04 11:28:00) [29]

2Johnmen ©   (04.07.05 10:05) [1]

Если уж и в хелпах не понял, то давание простого примера не поможет...:)
Проста в  ..DB\IBX\.. примеры сложные на первы раз(может для меня). Поэтому нужен простой пример.

2Stakan ©
у меня база такая:
CREATE TABLE MAIN (
   ID      INTEGER,
   ZNACH1  INTEGER,
   ZNACH2  VARCHAR(10)
);
ALTER TABLE MAIN ADD CONSTRAINT PK_MAIN PRIMARY KEY (ID);

CREATE TABLE DATA1 (
   DATA1_ID  INTEGER,
   ZNACH1    INTEGER,
   ZNACH2    VARCHAR(10)
);

ALTER TABLE DATA1 ADD CONSTRAINT FK_DATA1 FOREIGN KEY (DATA1_ID) REFERENCES MAIN (ID) ON DELETE CASCADE ON UPDATE CASCADE;

Может в проге ошибка, может посмотрите код?


Stakan   (2005-07-04 10:10:00) [30]

В подчинённой таблице в поле, по которому связь с родительской, должно быть значение поля из родительской таблицы (то поле, которое указано во внешнем ключе).
Например:
ALTER TABLE DATA1 ADD CONSTRAINT FK_DATA2 FOREIGN KEY (DATA2_ID) REFERENCES DATA2 (ID)
Это значит, что в таблице DATA1 в поле DATA2_ID должно быть значение из поля ID таблицы DATA2


Johnmen   (2005-07-04 10:05:00) [31]

Если уж и в хелпах не понял, то давание простого примера не поможет...:)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо