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

Вниз

TDatasetProvider s stuff   Найти похожие ветки 

 
pasha_golub ©   (2005-09-20 10:45) [0]

Вводная. Есть потомок TDataset - наш (почти мой ;). Пользователь желает извернуться и сделать Мастер-Детайл отображение через такую схему:


[+] PSQLDatabase1
|--- MasterTable: TPSQLTable
      |--- DSMaster: TDataSource
            |--- DetailTable: TPSQLTable


Вот тут пока знакомо, а потом идет заморочка с провайдерами и вложенными DataSet"ами.


[+] MasterTable: TPSQLTable
|--- pvdMaster: TDataSetProvider
      |--- cdsMaster: TClientDataset
            |--- cdsMasterDetailTable: TDataSetField
                  |--- cdsDetail: TClientDataSet


При чем cdsMasterDetailTable.FieldName := "DetailTable";
Я так понимаю, этой строчкой пользователь хотел сказать, что должна использоваться DetailTable. Но как это должно происходить через провайдер, для меня загадка.

Соответственно есть еще два TDbGrid"a и два TDataSource"a, с помощью которых гриды и подключаются к cdsMaster & cdsDetail. Ну, это неважно, впрочем.

В хелпе написано:
TDataSetField represents a nested dataset field in a database. This nested dataset can result from an object relational database (such as the nested datasets in Oracle 8 databases) or from a provider that packages data for the master table of a master/detail relationship.

Далее. Во время работы программы, по логу соединения видно, что данные Detail запроса тянутся, что в принипе и не удивительно. Однако, в гриде они не появляются. Не могу понять, что здесь не так.

Вопросы:

Правильна ли схема вообще построена?

Что  и как должен реализовывать потомок TDataset"a, чтобы такая схема работала (Я грешу на неверную реализацию IProviderSupport)?

Любые замечания по теме будут приняты к рассмотрению. А то глаз замылился уже, гляжу и не вижу ничего.

Спасибо


 
pasha_golub ©   (2005-09-20 14:40) [1]

Как-то что-то все молчат...

Может нужно какие детали раскрыть? Спрашивайте...


 
rayrom ©   (2005-09-20 14:55) [2]

Привет Паша, как я понял люди хотя матер-детайл в одной компаненте сделать? Мне тоже было бы интересно узнать как это реализовать!


 
pasha_golub ©   (2005-09-21 10:51) [3]

Клянуться, что через TTable у них такой финт ушами проходит.

Из хелпа я почерпнул, то видимо, провайдер должен каким-то образом на запрос TClientDataset"а вытягивать при необходимости и Детайл датасет.

Хоть убей, даже не знаю где копать.
IProviderSupport по этому поводу молчит. В хелпе лишь обрывки поверхностной инфы...


 
Rule ©   (2005-09-21 12:05) [4]

pasha_golub ©   (21.09.05 10:51) [3]
шото муть какаято ... первый раз слышу


 
pasha_golub ©   (2005-09-21 12:22) [5]


> шото муть какаято ... первый раз слышу

Аналогично. Однако дядя Борланд пишеть:

TDataSetField represents a nested dataset field in a database. This nested dataset can result from an object relational database (such as the nested datasets in Oracle 8 databases) or from a provider that packages data for the master table of a master/detail relationship.

Это я повторяюсь... Ну, да ладно. А вот как товарищ провайдер packages data...



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

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

Наверх




Память: 0.48 MB
Время: 0.079 c
2-1128443420
Alex_T
2005-10-04 20:30
2005.10.30
Подскажите плиз как корректно реализовать


2-1128945580
SPACE
2005-10-10 15:59
2005.10.30
Народ никак немогу сделать скриншот из игрушки


4-1121785751
Valera
2005-07-19 19:09
2005.10.30
При перехвате сообщения WMEraseBkgnd получаю HDC больше Integer


3-1127334603
quadronik
2005-09-22 00:30
2005.10.30
Запись инфы в базу из Edit.text


1-1128681705
LordOfRock
2005-10-07 14:41
2005.10.30
Программа в ХР-шном стиле