|
|
|
|
#1 |
|
Участник
|
В третьей версии Аксапты подобный запрос так же как в AX 4 отрабатывает без ошибки, но мне кажется, что запрет использования табличной переменной в условии запроса(where...) без указания конкретного поля в AX 2009 вполне логичным и правильным. Скорее всего, этот нюанс в пятой версии Аксапты был устранен.
А вообще запрос, по-моему, не очень корректный, т.к. табличная переменая rHRMOrderTrans в любом случае окажется пустой. Возможно так было бы правильней: X++: select orderTrans join rHRMOrderTable where rHRMOrderTable.RecId == orderTrans.OrderTableRecId outer join rHRMOrderTrans where rHRMOrderTrans.RecId == orderTrans.RecId;
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 01.12.2010 в 15:42. |
|
|
|
|
#2 |
|
Участник
|
|
|
|
|
|
#3 |
|
Участник
|
Цитата:
Цитата:
Если можно, то чем этот код отличается от приведенного выше? Точно такое же условие.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 01.12.2010 в 15:37. |
|
|
|
|
#4 |
|
Участник
|
Но ведь табличная переменная не используется в запросе, следовательно ничем не отличается от любой другой переменной. Такое выражение сначала преобразуется в true или false (в данном случае false) и после этого подставится в запрос. По крайне мере в 3.0 так. Про переменную, которая используется в запрос, насколько я понял, речи не идет.
|
|
|
|
|
#5 |
|
Участник
|
Цитата:
Сообщение от Lucky13
Но ведь табличная переменная не используется в запросе, следовательно ничем не отличается от любой другой переменной. Такое выражение сначала преобразуется в true или false (в данном случае false) и после этого подставится в запрос. По крайне мере в 3.0 так. Про переменную, которая используется в запрос, насколько я понял, речи не идет.
А по поводу Ax2009 было сделано предположение об устранении возможности использования табличной переменной в условии запроса без указания конкретного поля.
__________________
С уважением, Александр. Последний раз редактировалось samolalex; 01.12.2010 в 15:56. |
|
|
|
|
#6 |
|
Участник
|
|
|
|
|
|
#7 |
|
Участник
|
Цитата:
Интересно узнать, как данный запрос выполняется у других участников в AX2009.
__________________
С уважением, Александр. |
|
|
|
|
#8 |
|
Ищущий знания...
|
вообще на форуме уже обсуждался вопрос про использование неявного преобразования (не могу найти ссылку
), и в частности про условие существования записи в таблице.Т.е. использование синтаксиса : X++: if (inventTrans)X++: if (inventTrans.RecId != 0)X++: if (inventTrans.RecId != 0)X++: where (rHRMOrderTrans.RecId == 0 || rHRMOrderTrans.RecId == orderTrans.RecId)
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
|