Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.036 c
4-1124977370
Суслик
2005-08-25 17:42
2005.10.30
Теоретический вопрос по PeekMessage


14-1128671022
Andry
2005-10-07 11:43
2005.10.30
Web-сервер


1-1129013418
Gorez
2005-10-11 10:50
2005.10.30
janXMLparser2


14-1129017796
pazitron_brain
2005-10-11 12:03
2005.10.30
Как сделать ICQ?


3-1126980946
WonderfulDay
2005-09-17 22:15
2005.10.30
Insufficient memory for this operation.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский