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".
Кто небуд сталкивался с такой проблемой?
Для того чтобы был понятнее могу выслать код с базой. Вчера с утра до вечера посидел решая эту проблему, но никак не вышло. Как можно сделат связь правилно. Если можно дайти простой пример. В хелпах Делфи покапался, но непонял.


DSKalugin   (2005-07-05 17:33:00) [1]

Я ему уже выслал исправленный и работающий исходник.
Сильно не судите, человек только начинает вникать в суть, надо помочь с азами


Ярослав   (2005-07-05 09:32:00) [2]

>> Anatoly Podgoretsky ©   (05.07.05 09:21) [29]
Я конечно понимаю что гораздо лучше когда человек сам добиваеться цели, но все же иногда можно и так


Anatoly Podgoretsky   (2005-07-05 09:21:00) [3]

Ярослав   (05.07.05 09:13) [28]
Ты это называешь помощью :-)


Ярослав   (2005-07-05 09:13:00) [4]

>> Anatoly Podgoretsky ©   (05.07.05 08:56) [27]
Я то? А как же, надо же людям помогать иногда, просто мне так легче чем допытываться из человека что там у него не так


Anatoly Podgoretsky   (2005-07-05 08:56:00) [5]

Ярослав   (05.07.05 06:27) [26]
Добрый Санта Клаус


Ярослав   (2005-07-05 06:27:00) [6]

>> Xmen   (04.07.05 14:34) [25]

Чем гадать кинь мне весь проект на мыло


Xmen   (2005-07-04 14:34:00) [7]

ID поле таблицы MAIN первычный ключ, и он создаётся генератором, тоесть автоинкременант.
А разве нужно установит в других таблицах первычный ключ, и это как повляеет на событя. Я пробовал ставить первычные ключа к другим таблицам, но в моём случае нечего не изменил. Я обчно работаю с базами и создаю их в проге ИБЭкспрес, ключи тоже внем создавал, по моему внем недолжен быт ошибка.

2Ярослав   (04.07.05 13:19) [20]
Обесни еще попроше, если вопросы есть на уточнения то задавай.


Anatoly Podgoretsky   (2005-07-04 14:00:00) [8]

Stakan ©   (04.07.05 13:59) [23]
Гм, а мне показалось, что было безаппеляционное утверждение, я рад что не так.


Stakan   (2005-07-04 13:59:00) [9]

Anatoly Podgoretsky ©   (04.07.05 13:54) [22]
Согласен с Вами, могу лишь заметить, что я ни на чём не настаивал, а лишь высказывал своё скромное мнение о том, что следует избегать по возможности изменения первичного ключа.


Anatoly Podgoretsky   (2005-07-04 13:54:00) [10]

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


Stakan   (2005-07-04 13:32:00) [11]

Anatoly Podgoretsky ©   (04.07.05 13:15) [19]

> Ты не высказывал мнения, а только религиозное
> убеждение - догмат веры

При чём здесь религия, я как раз высказал мнение.

> Насчет уникальности - это где же ты видел не
> уникальные первичные ключи? Что за база такая странная?

Я как раз и сказал см. [6], что в таблице DATA1 отсутствует первичный ключ, что может привести к неуникальности значений в этой таблице.

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

Согласен, но я считаю что поле ID таблицы MAIN изменять не стоит, так как это первичный ключ.


Ярослав   (2005-07-04 13:19:00) [12]

>> Xmen   (04.07.05 12:49) [17]
Ну вот ты и проверь в каком обработчике добавления новой записи, кокой из таблиц ты ID главной присваеваешь а то если при вставке в DATA2 ты делаешь qrData1['Data1_id']:=qrMain['id']; т.е. также как и при вставке в DATA1 то это мало чем поможет
Так же  qrData1 вовсе не означает что ты вставляешь в DATA1
проверь SQL  qrData1 и наверное qrData2 если он у тебя есть


Anatoly Podgoretsky   (2005-07-04 13:15:00) [13]

Stakan ©   (04.07.05 12:44) [15]
Ты не высказывал мнения, а только религиозное убеждение - догмат веры.

Насчет уникальности - это где же ты видел не уникальные первичные ключи? Что за база такая странная?

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


Anatoly Podgoretsky   (2005-07-04 13:12:00) [14]

Xmen   (04.07.05 12:49) [17]
Поддержка по электронной почте не обеспечивается и не акредитированя почта не принимается, а ответы я даю только в конференциях, при наличии желания.


Хьут   (2005-07-04 12:49:00) [15]

Удалено модератором


Xmen   (2005-07-04 12:49:00) [16]

2Ярослав   (04.07.05 12:08) [13]
У меня вобшета 3 таблицы, я проста не упоменул 3ю иза того что он таже похож на 2го
CREATE TABLE DATA2 (
   DATA2_ID  INTEGER,
   ZNACH1    INTEGER,
   ZNACH2    VARCHAR(10)
);

ALTER TABLE DATA2 ADD CONSTRAINT FK_DATA2 FOREIGN KEY (DATA2_ID) REFERENCES MAIN (ID) ON DELETE CASCADE ON UPDATE CASCADE;

2Anatoly Podgoretsky ©
Я вам в суботу отправил через маил письмо с кодом. Но не получил ответа. Если можно ответти пожалуста.


Stakan   (2005-07-04 12:44:00) [17]

Anatoly Podgoretsky ©   (04.07.05 12:26) [14]
Как мне кажется все на этом форуме высказывают лишь собственное мнение, на абсолютную истину никто не претендует. Что касается данного случая, то аргументы в поддержку моего мнения очевидны - неуникальность данных в подчинённой таблице, что противоречит теории РСУБД.


Anatoly Podgoretsky   (2005-07-04 12:26:00) [18]

Stakan ©   (04.07.05 11:58) [12]
То есть только твои личные неприязни, сущность оказывается не при чем.


Ярослав   (2005-07-04 12:08:00) [19]

>> Xmen   (04.07.05 11:52) [9]
Интересно в определении таблиц у тебя ни слова о DATA2 а в ошибке
violation of foregn key constraint "FK_DATA2" on table "DATA2"
в общем какую то  DATE2 таблицу упоминает...
Может ты чего то не договариваешь?


Stakan   (2005-07-04 11:58:00) [20]

Anatoly Podgoretsky ©   (04.07.05 11:54) [11]
ИМХО не стоит так делать.


Страницы:   1 2

Наверх

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