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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.10.2015, 13:41   #21  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Napalm Посмотреть сообщение
Полное непонимание вопроса.
Бггг!!! Napalm, жжоте. Тупо жжоте.

Да, надо разделить вопрос:
= Query vs while select
= in vs range

Query надо использовать ВСЕГДА!
По построению - Query, это программный объект, который позволяет программисту при помощи методов строить и менять запрос. А также (!) использовать переменные условия на переменное число полей. UPD: в том числе добавлять таблицы и условия может и пользователь (!!!!), если ему дали такие права, а программист предоставил соответствующий диалог (как правило, пара методов).

while select - немодифицируемый оператор языка. программист не может изменить запрос, написанный при помощи while select. Делать "переменный" или "модифицируемый" while select - это ссать против ветра.

======================
in - отсутствует в Аксапте
в аксапте присуствует range, сводящийся к OR, AND, NOT

использовать range на "большом числе условий" - ссать против ветра. можно, но мокро.
В Аксапте предлагается использовать временную (в некоторых случаях постоянную) таблицу. См. обсуждения вариантов.

===============================
Цитата:
Сообщение от kitty Посмотреть сообщение
тк
1) while-select уже существует и переписывать существующую логику в query только для того, чтобы добавить доп условие на 1 поле - имхо, не умно
Бгггг.... Я бы после такого заявления уволил

Цитата:
Сообщение от Napalm Посмотреть сообщение
Query плохое решение.
Бггг... туда же

Цитата:
Сообщение от Cardagant Посмотреть сообщение
Query и правда не подойдёт, если количество OR может быть очень большим.
А не надо использовать query для большого числа OR (как и для большого числа элементов в IN)
даже до того, как вы упретесь в ограничение длины строки, SQL перестанет оптимизировать план запроса для очень большого числа условий.

странно даже, вроде в реальной жизни никто ножом дрова не колет... а колуном не затачивает карандаши... а с select и Query - полно желающих.

Последний раз редактировалось mazzy; 12.10.2015 в 13:59.
За это сообщение автора поблагодарили: Михаил Андреев (1), gl00mie (1), Weez (1), Cardagant (1).
Старый 12.10.2015, 17:22   #22  
Napalm is offline
Napalm
Участник
 
80 / 88 (3) ++++
Регистрация: 23.05.2012
Цитата:
Сообщение от mazzy Посмотреть сообщение
Query надо использовать ВСЕГДА!
LOL.
Цитата:
Сообщение от mazzy Посмотреть сообщение
Бгггг.... Я бы после такого заявления уволил
Цитата:
Сообщение от mazzy Посмотреть сообщение
Бггг... туда же
Я бы к такому "знатоку" работать не пошел.
Старый 13.10.2015, 13:48   #23  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от mazzy Посмотреть сообщение
Бггг!!! Napalm, жжоте. Тупо жжоте.
А не надо использовать query для большого числа OR (как и для большого числа элементов в IN)
даже до того, как вы упретесь в ограничение длины строки, SQL перестанет оптимизировать план запроса для очень большого числа условий..
mazzy, хотел бы пояснить. Вы абсолютно правы и я даже и не думал не соглашаться по поводу того, что квери очень даже полезен в использовании в большинстве случаев.

Но иногда бывает, к примеру, нужно сделать форму, которая представляет собой ограничение записей одного набора таблиц по мультиселекту записей вызывающией формы (когда количество выбранных записей может быть любым, соответственно критерий заранее неизвестной длины). В данном случае, на мой взгляд, предложенный мною вариант подошёл бы.

Последний раз редактировалось Cardagant; 13.10.2015 в 13:58.
Старый 13.10.2015, 14:00   #24  
Weez is offline
Weez
Участник
Axapta Retail User
 
250 / 84 (3) ++++
Регистрация: 18.01.2006
Адрес: Moscow city
Цитата:
Сообщение от Cardagant Посмотреть сообщение
mazzy, хотел бы пояснить. Вы абсолютно правы и я даже и не думал не соглашаться по поводу того, что квери очень даже полезен в использовании в большинстве случаев.

Но иногда бывает, к примеру, нужно сделать форму, которая представляет собой ограничение записей одного набора таблиц по мультиселекту записей вызывающией формы (когда количество выбранных записей может быть любым, соответственно критерий заранее неизвестной длины) из другой. В данном случае, на мой взгляд, предложенный мною вариант подошёл бы.
Так уже предложили для этого использовать класс RecordReferenceList_RU, который позволяет приджойнть к Query заполненную по любому принципу таблицу, при этом абстрагируясь от низкоуровневых особенностей реализации. Но это работает если джоин можно сделать через RecId записи.
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет.
Старый 13.10.2015, 14:11   #25  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от Weez Посмотреть сообщение
Так уже предложили для этого использовать класс RecordReferenceList_RU, который позволяет приджойнть к Query заполненную по любому принципу таблицу, при этом абстрагируясь от низкоуровневых особенностей реализации. Но это работает если джоин можно сделать через RecId записи.
Да, пусть это будет альтернативным решением.

Здесь акцент был на том, что есть случаи, когда query недостаточен для решения задачи.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: Using Service Management to Track Service Orders Blog bot DAX Blogs 1 25.08.2013 19:16
Фильтр по пустому Dimension[x] в select Yprit DAX: Программирование 3 05.03.2008 15:11
фильтр lookupа на запросе диалога oleg_e DAX: Программирование 6 12.11.2007 11:01
Вопрос про Demand Planner slava09 DAX: Функционал 4 25.09.2006 11:43
Фильтр по enum-полю в select ArturK DAX: Программирование 18 30.03.2004 13:37

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:20.