Мастер-деталь между TQuery

kass
Дата: 10.10.2006 08:52:47
Есть два TQuery (select). У обоих свойство RequestLive установлено в True. Соотношение между наборами данных 1:1. Связь мастер-деталь организована с помощью ссылки в Datasource второго TQuery на Datasource первого TQuery.
Просмотр и редактирование связанных записей, а также вставка записей в главный НД работают нормально. Но когда требуется вставить новую запись во второй НД, Delphi ругается на Insert. Почему? Если разорвать связь между TQuery, то всё ОК. Можно, конечно, вставить запись в подчиненный НД, use третий TQuery (insert), но мне это не очень нравится. Можно ли тут обойтись двумя TQuery (select)?
RENaissance
Дата: 10.10.2006 08:56:11

Матом ругается или есть конкретное сообщение об ошибке?


Posted via ActualForum NNTP Server 1.3

kass
Дата: 10.10.2006 09:08:24
Конкретно ругается матом :)
Query1: Dataset not in edit or insert mode.
RENaissance
Дата: 10.10.2006 09:29:53

Код вставки во второй набор в студию.
З.Ы Обработчики событий, влияющих на набор данных Query1, имеются?


Posted via ActualForum NNTP Server 1.3

kass
Дата: 10.10.2006 09:46:13
RENaissance

З.Ы Обработчики событий, влияющих на набор данных Query1, имеются?

Спасибо, всё получилось. Мешал BeforeInsert. Странно, откуда он тут взялся... :)
Anatoly Podgoretsky
Дата: 10.10.2006 10:43:07
Есди 1:1, то сделать !:0
kass
Дата: 10.10.2006 12:59:04
Anatoly Podgoretsky
Есди 1:1, то сделать !:0

Pardon.... Если 1:1, то ЧТО сделать?
Dimitry Sibiryakov
Дата: 10.10.2006 13:04:39

kass

Если 1:1, то ЧТО сделать?

Внести все в одну таблицу.

Posted via ActualForum NNTP Server 1.3

kass
Дата: 10.10.2006 13:13:00
Dimitry Sibiryakov

kass

Если 1:1, то ЧТО сделать?

Внести все в одну таблицу.

Я так и поняла...
Связь может быть и 1:0.
Anatoly Podgoretsky
Дата: 10.10.2006 15:05:47
Связи не будет, практически всегда такая связь - это не доработка проектировщика, кроме случаев когда это сделано из-за технических ограничений.

Свести в одну таблицу и не будет двух таблиц с ненужной связью.