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

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

Проблема Master-Detail (таблицы в Interbase) [D6, IB6.x]


Pavel_S ©   (2002-01-30 15:50:00) 

Есть Master таблица - TBL_EMPLOYEES и Detail - TBL_CARDS.

Использую IBQuery и IBUpdateSQL для каждой таблицы.
Datasource таблицы TBL_CARDS связан по полю EMPLOYEE_ID с главной таблицей TBL_EMPLOYEES.
При попытке сохранить добавленную запись в таблицу TBL_CARDS, сообщает что не указано значение employee_id, хотя как я знаю значение должно браться из таблицы указанной в datasource.
SQL строки в каждой IBUpdateSQL генерированы стандартно.

Прошу помочь с советом


Johnmen   (2002-01-31 09:43:00) [1]

За минувшие сутки осмыслил и кое-что попробовал.

...а вот :employee_id должен по идее браться из datasource...
на самомом деле он этого вовсе не должен !

и все значения параметров берутся из текущих значений полей НД !
посему ...другого выхода нет, разве как присваивать значение в beforepost...


Pavel_S   (2002-01-31 06:04:00) [2]

В том то и дело, что они берутся из data controls компонент, а вот :employee_id должен по идее браться из datasource.
Или другого выхода нет, разве как присваивать значение в beforepost ?


Johnmen   (2002-01-30 17:56:00) [3]

Если это для Deatil"ного НД , то непонятно, откуда же возьмутся значения параметров :LANGUAGE, :READING,
:WRITING, :SPEAKING, ведь предполагается, что они из Master"а,
а там их нет !


Pavel_S   (2002-01-30 17:01:00) [4]

Привожу пример InsertSQL, но из другой таблицы - сути не меняет

insert into TBL_FOREIGN_LANGUAGES
(FOREIGN_LANGUAGE_ID, EMPLOYEE_ID, LANGUAGE, READING, WRITING,
SPEAKING)
values
(:FOREIGN_LANGUAGE_ID, :EMPLOYEE_ID, :LANGUAGE, :READING,
:WRITING, :SPEAKING)


Johnmen   (2002-01-30 16:56:00) [5]

Если не в лом - напиши как выглядит InsertSQL в IBUpdateSQL для
Detail"ого IBQuery...


Pavel_S   (2002-01-30 16:48:00) [6]

Все поля обозначены и добавлены


Johnmen   (2002-01-30 16:42:00) [7]

Крайне интересная проблема !
К сожелению сейчас не могу поисследовать :(
(может быть надо в FielвEditor"е IBQuery обозначить поля
[в частности employee_id])...
Если добьешься положительного рез-та - сообщи !!!


Pavel_S   (2002-01-30 16:26:00) [8]

ДА все есть.
Смотрел значение параметра таблицы tbl_cards во время post, которое берется из tbl_employees значение имеется, но почему то не используется. Исправлял в InsertSQL :employee_id на :old_employee_id - все равно никакого результата - Пишет что значение employee_id не определено.


Johnmen   (2002-01-30 16:21:00) [9]

а в IBQuery, на которую <- datasource есть поле employee_id ?


Pavel_S   (2002-01-30 16:09:00) [10]

В каком виде надо указывать?
Там ведь по умолчанию стоит :employee_id - то есть параметр, а параметр вроде должен браться из datasource.
Как указать что значение брать именно из таблицы указанной в datasource ?


Johnmen   (2002-01-30 16:04:00) [11]

...значение должно браться из таблицы указанной в datasource...
Это не очевидно...
В запросах IBUpdateSQL на Detail в соответствующих местах надо все же указывать значение employee_id...


Наверх

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