Главная страница
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.027 c
2-1135264803
з. танька
2005-12-22 18:20
2006.01.15
узнать кто куда лазил


4-1131416118
msgipss
2005-11-08 05:15
2006.01.15
Можно ли получить время нахождения процесса в памяти


6-1127965848
VolanD666
2005-09-29 07:50
2006.01.15
Проблема передачи файлов


14-1135262887
BFG9k
2005-12-22 17:48
2006.01.15
Обьясните механизм извлечения dcu файла из пакета


6-1127696360
Viktop
2005-09-26 04:59
2006.01.15
Монитор порта