|
|
#1 |
|
MCTS
|
Самопроизвольное наложение Order By в Query по SalesTable
Приветствую!
Обнаружил что на приложении AX4 при фильтрации SalesTable в Query по кастомному полю, добавленному на USR, самопроизвольно накладывается Order By по этому полю, при этом данный факт виден только при трассировке SQL, а если выводить текст запроса через DataSource.toString(), то никакой сортировки не видно. Если фильтровать по SalesId, например, то сортировки никакой нет. В данном случае на корректность результата не влияет, но хотелось бы понять откуда ноги растут. По полю есть неуникальный индекс, включающий dataareaId, вроде больше ничего особо примечательного. Вопросы: 1. Нормально ли такое поведение системы и с чем оно может быть связано? 2. Возможно есть еще какие-то принципиальные моменты, которые в DataSource.toString() не видны? Вроде там обычно достаточно адекватное соответствие реальному запросу отображается. Пример: X++: SalesTable st;
QueryRun queryRun;
Query query;
QueryBuildDataSource qbdsSalesTable;
;
query = new Query();
qbdsSalesTable = query.addDataSource(tablenum(SalesTable));
qbdsSalesTable.addRange(fieldnum(SalesTable, FIELD_NAME)).value(QueryValue('ЗНАЧЕНИЕ'));
queryRun = new QueryRun(query);
while (queryRun.next())
{
info(queryrun.query().dataSourceNo(1).toString());
}SELECT * FROM SalesTable WHERE ((FIELD_NAME = N'ЗНАЧЕНИЕ')) Трассировка SQL: ... FROM SALESTABLE A WHERE ((DATAAREAID=?) AND (FIELD_NAME=?)) ORDER BY A.FIELD_NAME,A.DATAAREAID Последний раз редактировалось alex55; 23.03.2018 в 00:13. |
|
|
|
| За это сообщение автора поблагодарили: S.Kuskov (2). | |
|
|
#2 |
|
Участник
|
Смотрите на табличные индексы и это обычное поведение.
|
|
|
|
|
#3 |
|
Участник
|
Мне другое интересно. Почему вы создаёте queryRun и строите цикл, когда можно просто на датасорсе метод вызвать:
X++: info(qbdsSalesTable.toString());
__________________
// no comments |
|
|
|
|
#4 |
|
MCTS
|
Спасибо. Также было бы интересно:
1. Это поведение системы где-то описано в документации? 2. Отключить эту фичу как-то возможно для конкретного Query? Просто из отладки такая копипаста приехала когда упрощенный пример делал, результат эквивалентен. |
|
|
|
|
#5 |
|
Участник
|
А вы не пробовали отключить св-во recordLevelSecurity?
__________________
Sergey Nefedov |
|
|
|
| За это сообщение автора поблагодарили: alex55 (3). | |
|
|
#6 |
|
MCTS
|
Цитата:
Сообщение от SRF
А вы не пробовали отключить св-во recordLevelSecurity?
На SalesTable у нас RLS все равно не настроен. |
|
|
| Теги |
| ax4.0, query, queryrange, queryrun |
|
|
|