AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.11.2012, 11:10   #1  
Andy-k is offline
Andy-k
Участник
Аватар для Andy-k
 
23 / 10 (1) +
Регистрация: 29.08.2012
Адрес: Москва
Query, где почитать?
Всем добрый день!

Подскажите новичку, где можно почитать о том как строить запросы при помощи Query? А то ничего толкового найти не могу, пара простых примеров и все. Пока просто эту область не особо понимаю. Может укажите, где оно нормально расписано?
Старый 08.11.2012, 11:18   #2  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
вышла новая книга по Axapta
http://msdn.microsoft.com/en-us/libr...29(AX.10).aspx
__________________
С уважением,
Олег.
Старый 08.11.2012, 16:15   #3  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
угу.

а главное - понимать:
Query - это класс, который помогает подготовить текстовую строку запроса. Грубо говоря, результатом работы Query является строка "select ... from ... where ... join"

QueryRun - это класс исполнитель запроса. Результатом являются записи, полученные от SQL-сервера после выполнения Query.

Вот и вся премудрость
Остальное - дело техники
Старый 09.11.2012, 08:03   #4  
Andy-k is offline
Andy-k
Участник
Аватар для Andy-k
 
23 / 10 (1) +
Регистрация: 29.08.2012
Адрес: Москва
mazzy, спасибо

это я как раз понимаю не хватает общих знаний по конструкциям. В примитиве все понятно, но иногда надо что-то эпическое туда засунуть, с группировками, сортировками и всякими многоэтажными фильтрами, вот тут и возникают траблы
Старый 09.11.2012, 08:47   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
http://www.axaptapedia.com/index.php?title=Query_class

Ещё там на аксаптапедии есть интересный проект: http://www.axaptapedia.com/SYS_ExpressionQueryBuilder
Методом реверс-инжиниринга можно из него получить нужные вам знания
Старый 09.11.2012, 12:30   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Andy-k Посмотреть сообщение
но иногда надо что-то эпическое туда засунуть, с группировками, сортировками и всякими многоэтажными фильтрами, вот тут и возникают траблы
а вы не программируйте.
создайте объект-прототип в AOT.
в коде напишите всего-лишь

X++:
Query q = new Query(querystr(myEpicQueryinAOT));
далее только корректируйте критерии (фильтры)
Старый 09.11.2012, 12:35   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
http://www.axaptapedia.com/index.php?title=Query_class

Ещё там на аксаптапедии есть интересный проект:
типичные примеры как НЕ надо программировать Query.
Получается слишком много кода. Код создания Query, как правило, разбросан по разным методам. (См. InventSum::newQuery и еще три метода модификации запроса по InventSum)
Получается слишком сложно поддерживаемо.

Просто создайте объект в AOT.
В коде модифицируйте его.
Желательно при помощи SysQuery::findOrCreateRange() или при помощи Global::findOrCreateRange_W()
Старый 09.11.2012, 12:47   #8  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от mazzy Посмотреть сообщение
типичные примеры как НЕ надо программировать Query.
Не, я не предлагал ExpressionQueryBuilder в качестве пособия к применению (также эту фразу прошу не считать агитацией против этого паттерна; для обсуждения данного паттерна помнится была отдельная ветка). Я всего лишь предложил в качестве изучения возможностей Query провести реверс-инжиниринг этой штуковины. По моему очень наглядно. Если знаешь как написать запрос "select", то можно понять как этот же запрос реализуется через Query.

Последний раз редактировалось S.Kuskov; 09.11.2012 в 12:55.
За это сообщение автора поблагодарили: mazzy (2), Andy-k (1).
Старый 09.11.2012, 16:20   #9  
Andy-k is offline
Andy-k
Участник
Аватар для Andy-k
 
23 / 10 (1) +
Регистрация: 29.08.2012
Адрес: Москва
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Если знаешь как написать запрос "select", то можно понять как этот же запрос реализуется через Query.
С "Select-ом" проблем особых нет, спасибо за подсказку
Теги
query

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax-erp: How to Set the Query Range on a SSRS Report Blog bot DAX Blogs 0 18.10.2012 19:11
emeadaxsupport: Calling the Query Service Blog bot DAX Blogs 0 18.02.2012 01:13
AIF: OData Query Service Blog bot DAX Blogs 0 24.08.2011 09:11
jinx: Dynamics AX – Query-Ranges und Filtereinstellungen des Benutzers Blog bot DAX auf Deutsch 0 04.02.2010 00:05
Dynamics AX Geek: Using query() Blog bot DAX Blogs 0 04.05.2009 14:05

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:19.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.