Показать сообщение отдельно
Старый 31.05.2010, 15:18   #4  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от TasmanianDevil Посмотреть сообщение
Если на узел вешаете несколько листов (например запрос по InventTrans c при-join'ными InventTable и InventDim) - листам надо указывать. В противном случае, система, не зная, какие отношения между таблицами существуют, при попытке добавить второй лист сбросит первый - что прекрасно видно в дебаггере при трассировке.
Ну, это не совсем так.
Система, ессно, знает, какие отношения существуют между таблицами, и может по ним построить правильный запрос. Просто значение по умолчанию для FetchMode = Один ко Многим.
Поэтому вместо одного запроса выполняется несколько независимых:
Один - InventTrans->InventTable
Второй - InventTrans->InventDim

а потом все 3 курсора заполняются соответствующими данными.

Поэтому в дебаггере видно, как будно один источник "отпал".

Если же посмотреть, какие запросы при этом выполнит SQL, то должны увидеть оба запроса.

Я все собираюсь написать блог пост tutorial с примерами, но не хватает времени.
За это сообщение автора поблагодарили: mazzy (2), Pustik (10), Logger (2), TasmanianDevil (2), konopello (2), S.Kuskov (3), vanokh (1), Cardagant (2).