![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно выполнить соединение Master-Detail в ODAC [D5]
Бульбаш © (2003-04-16 12:12:00)Возникла необходимость соединить два грида в одном окне такой связью. На локале было без проблем. MasterDataSource and MasterFields. А в данном случае в SmartQuery наблюдаю только первое свойство. Можно ли установить связь таким образом или надо в подчиненном запросе ставить параметр и переоткрывать его при смене записи в основном запросе?
Yuvich (2003-04-18 20:20:00) [1]Лучше пользоваться SmartQuery или OraQuery.
Я делаю так:
Создаешь два ДатаСета: ДатаСет1 и ДатаСет2
Создаешь два ДатаСоурса: ДатаСоурс1 и ДатаСоурс2
Цепляешь их между собой: ДатаСет1 - ДатаСоурс1 и ДатаСет2 - ДатаСоурс2
ДатаСоурсы цепляешь к ДБГридам.
Дальше делаешь связь Мастер - Дитэйл (пусть ДатаСет1 - Мастер):
ДатаСет2.МастерСоурс := ДатаСоурс1;
В запросе ДатаСета1 вытаскиваешь поля, например Филд1, Филд2, Филд3, а в запросе ДатаСета2 используешь параметры :Филд1 и :Филд2.
Теперь при открытии ДатаСет1 происходит АВТОМАТИЧЕСКАЯ передача значений от ДатаСет1.Филд1 к параметру ДатаСет2.Филд1 и т.д. - достаточно открыть еще ДатаСет2 и все. Любая навигация по ДатаСет1 приведет к обновлению данных в ДатаСет2.
Бульбаш (2003-04-16 14:44:00) [2]Попробовал соединение через OraTable. Там вроде бы сначала все красиво. Но при попытке установки Master Field ->Detail Field выскакивает "SQL command not properly ended". А ведь в Table текст запроса не редактируется. Чтобы это значило???