Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Fibplus: мастер-деталь-субдеталь / 2 сообщений из 2, страница 1 из 1
08.10.2003, 15:10
    #32287752
mara
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fibplus: мастер-деталь-субдеталь
Здрасьте всем!
Использую fibPlus dataset
в первом у меня запрос типа select kod,sum(kol) from ...., в котором я показываю с какого склада(kod) и сколько товара вообще (sum(kol)) чего-то отгружалось

во втором у меня выбирается что именно отгружалось со склада на котором стоит курсор в первом датасете(select items,sum(kol) from .....), связь идет по полю kod..... без проблем

а вот в третьем запросе мне надо показать конкретно по каждому товару(из второго датасета) детальную отгрузку (типа кому, номер накладной, дата и т.п.) и связываться мне надо по двум полям по kod и по items (это товар)..... а не получается

В примерах , описанных в инете и в мире интербейс да и на сайте разработчиков все связи по одному полю...... может кто знает....подскажите....наверняка такое возможно......
спасибо....
...
Рейтинг: 0 / 0
09.10.2003, 10:13
    #32288449
Малиновский Владимир
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Fibplus: мастер-деталь-субдеталь
Варианты:
Очень рекомендую Вам ввести для каждой таблицы суррогатные ключи (т.е. внутренний номер записа для каждой таблицы).
Таблица1 : t1
id_t1 : integer; /* внутренний № записи*/
Name : varchar (30);
Таблица2 : t2
id_t2 : integer; /* внутренний № записи*/
id_t1 : integer; /* номер записи таблицы t1, к которой относится эта запись*/
Name : varchar (30);
Таблица3 : t3
id_t3 : integer;
id_t2 : integer; /* номер записи таблицы t1, к которой относится эта запись*/
Name : varchar (30);
... и т.д.

Теперь все просто:
select * from t1 - это запрос для "верхней" таблицы

select * from t2 where id_t1 = :id_t1 - это запрос для "нижней" таблицы 1 уровня, ну укажите в качестве DataSiurce pFIBDataSet "верхней" таблицы

select * from t3 where id_t2 = :id_t2 - это запрос для "нижней" таблицы 2 уровня, укажите в качестве DataSiurce pFIBDataSet "нижней таблицы 1 уровня"

2. Если у Вас ключ все-таки составной, опять таки рекомендую обратиться к варианту 1. Если не хотите, то используйте запрос типа
select * from t3 where компонент_ключа1 = :компонент_ключа1 and компонент_ключа2 = :компонент_ключа2, и, если мастер-ключи располагаются в разных таблицах, то заполнять значения парметов запроса придется ручками, при OnDataChange в Master - таблицах, а затем, естественно, переоткрывать запрос. Используйте суррогатные ключи!


Впрочем, может, я просто не понял вопроса.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Fibplus: мастер-деталь-субдеталь / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]