Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Реализация Master Detail для TOracleDataSet   Найти похожие ветки 

 
AversFm   (2005-11-20 12:12) [0]

Ув. мастера, я использую DOA. Позскажите как правильно указать свойства MasterFields и DetailFields для связки двух TOracleDataSet.

Для примера:
допустим есть две таблицы (просмотра)
    TabMaster - таблица документов
         Num  - № док.
         Usr   - код пользователя
         Title - шапка док.

    TabDetail - таблица действий по документу
         Num - № док.
         Usr - код пользователя
         Action - действие


Запрос для первого TOracleDataSet (OracleDataSet1):
  SELECT Num, Usr, Title
  FROM TabMaster


Запрос для второго  TOracleDataSet (OracleDataSet2):
  SELECT Action
  FROM TabDetail
  WHERE Num = :Num
     AND  Usr = :Usr


Как теперь указать, что для  OracleDataSet2 параметры :Num и :Usr нужно брать из OracleDataSet1?


 
Sergey13 ©   (2005-11-21 09:17) [1]

Так вроде как и везде. Указать мастера и список полей через точку с запятой. Помнится еще при указывании этого ДОА сама вставляла нужные параметры в детальный датасет.
Можно еще руками на афтерскрол мастера повесить обновление детейла.


 
ANB ©   (2005-11-21 12:47) [2]


> AversFm   (20.11.05 12:12)

Некузяво так связки делать - писать больше и  на грабли наступишь (у оракла я не нашел каскадного обновления внешних ключей).


 
AversFm   (2005-11-21 16:21) [3]


> Указать мастера и список полей через точку с запятой.

Вот оно... А я через запятую тулил. Спасибо за совет.


> Помнится еще при указывании этого ДОА сама вставляла нужные
> параметры в детальный датасет.

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

Итак, подытожим (может еще кому пригодится):

Для данного условия в свойствах OracleDataSet2 (деталь)
заполнить следующие свойства:

Master:= OracleDataSet1;
MasterFields:="Num; Usr";
DetailFields:="Num; Usr";


Еще раз спасибо всем, кто откликнулся.


 
Val ©   (2005-11-21 17:55) [4]

>[2] ANB ©   (21.11.05 12:47)

> ..на грабли наступишь (у оракла я не нашел каскадного обновления
> внешних ключей)...

в смысле?


 
ANB ©   (2005-11-21 18:17) [5]


> Val ©   (21.11.05 17:55) [4]

Судя по всему используются естественные ключи (иначе нет смысла делать их составными). Значит рано или поздно вылезет проблема их обновления. А каскадного обновления при задании ограничения в оракле нету (нашел только удаление). Если покажешь - как это сделать - буду очень благодарен.



Страницы: 1 вся ветка

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.054 c
14-1134716196
Ник (пишу с работы)
2005-12-16 09:56
2006.01.15
ТВ тюнер на winxp


2-1135243464
Apachi
2005-12-22 12:24
2006.01.15
Подскажите пожалуста работа с Access


14-1135018408
Санёк
2005-12-19 21:53
2006.01.15
Visual C++ 2005 Express Edition


2-1135336738
oleg777
2005-12-23 14:18
2006.01.15
не работает запрос к sysusers


2-1135329585
SergeyG
2005-12-23 12:19
2006.01.15
Как к программе (проекту) подключить форму ранее разработанной