08.11.2012, 11:10 | #1 |
Участник
|
Query, где почитать?
Всем добрый день!
Подскажите новичку, где можно почитать о том как строить запросы при помощи Query? А то ничего толкового найти не могу, пара простых примеров и все. Пока просто эту область не особо понимаю. Может укажите, где оно нормально расписано? |
|
08.11.2012, 11:18 | #2 |
Axapta
|
__________________
С уважением, Олег. |
|
08.11.2012, 16:15 | #3 |
Участник
|
угу.
а главное - понимать: Query - это класс, который помогает подготовить текстовую строку запроса. Грубо говоря, результатом работы Query является строка "select ... from ... where ... join" QueryRun - это класс исполнитель запроса. Результатом являются записи, полученные от SQL-сервера после выполнения Query. Вот и вся премудрость Остальное - дело техники |
|
09.11.2012, 08:03 | #4 |
Участник
|
mazzy, спасибо
это я как раз понимаю не хватает общих знаний по конструкциям. В примитиве все понятно, но иногда надо что-то эпическое туда засунуть, с группировками, сортировками и всякими многоэтажными фильтрами, вот тут и возникают траблы |
|
09.11.2012, 08:47 | #5 |
Участник
|
http://www.axaptapedia.com/index.php?title=Query_class
Ещё там на аксаптапедии есть интересный проект: http://www.axaptapedia.com/SYS_ExpressionQueryBuilder Методом реверс-инжиниринга можно из него получить нужные вам знания |
|
09.11.2012, 12:30 | #6 |
Участник
|
Цитата:
создайте объект-прототип в AOT. в коде напишите всего-лишь X++: Query q = new Query(querystr(myEpicQueryinAOT)); |
|
09.11.2012, 12:35 | #7 |
Участник
|
Цитата:
Сообщение от S.Kuskov
http://www.axaptapedia.com/index.php?title=Query_class
Ещё там на аксаптапедии есть интересный проект: Получается слишком много кода. Код создания Query, как правило, разбросан по разным методам. (См. InventSum::newQuery и еще три метода модификации запроса по InventSum) Получается слишком сложно поддерживаемо. Просто создайте объект в AOT. В коде модифицируйте его. Желательно при помощи SysQuery::findOrCreateRange() или при помощи Global::findOrCreateRange_W() |
|
09.11.2012, 12:47 | #8 |
Участник
|
Не, я не предлагал ExpressionQueryBuilder в качестве пособия к применению (также эту фразу прошу не считать агитацией против этого паттерна; для обсуждения данного паттерна помнится была отдельная ветка). Я всего лишь предложил в качестве изучения возможностей Query провести реверс-инжиниринг этой штуковины. По моему очень наглядно. Если знаешь как написать запрос "select", то можно понять как этот же запрос реализуется через Query.
Последний раз редактировалось S.Kuskov; 09.11.2012 в 12:55. |
|
|
За это сообщение автора поблагодарили: mazzy (2), Andy-k (1). |
09.11.2012, 16:20 | #9 |
Участник
|
|
|