|
|
#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). | |
| Теги |
| ax4.0, query, queryrange, queryrun |
|
|
|