Главная страница
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
4-1131459243
vishnia
2005-11-08 17:14
2006.01.15
Вывод на печать на принтер, подключенный по сети


6-1128509833
Profik
2005-10-05 14:57
2006.01.15
MailSlot


2-1135381830
JazY
2005-12-24 02:50
2006.01.15
Как реализовать автофильтр в БД?


14-1135307358
Карелин Артем
2005-12-23 06:09
2006.01.15
Прощай, Win32. I ll be missing u


2-1135162502
linox
2005-12-21 13:55
2006.01.15
компы в сети?