|
![]() |
#1 |
Участник
|
Оператор IN
Через AddRange все понятно, он сам берет и проверяет на вхождение в диапазон разбивая его на OR.
А через Select как? Оператора IN нет, а чем заменить? like даже не подойдет, т.к. может быть и значение "520" и "5201", и 520 не должен определиться,если выбран 5201. |
|
![]() |
#2 |
Участник
|
select a
where a.field1 == "5201"
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет. |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Например, вот так:
X++: select a where (a.field1 == "5201" || a.field1 == "54" || a.field1 == "52") |
|
![]() |
#5 |
Участник
|
Если ТС хочет использовать SELECT, что мешает ему написать как уже советовали:
__________________
// no comments |
|
![]() |
#6 |
Участник
|
|
|
![]() |
#7 |
Гость
|
|
|
![]() |
#8 |
Участник
|
|
|
![]() |
#9 |
Участник
|
можно еще почитать тут: select в X++ и список значений в условии where
|
|
|
За это сообщение автора поблагодарили: trudel (1). |
![]() |
#10 |
Участник
|
Цитата:
Сообщение от _AV_
![]() можно еще почитать тут: select в X++ и список значений в условии where
|
|
![]() |
#11 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: IvanS (1). |
![]() |
#12 |
Участник
|
|
|
![]() |
#13 |
Участник
|
|
|
![]() |
#14 |
NavAx
|
![]()
Да собственно самое страшное в нем то, что его путают с sql select.
И поэтому вариант в цикле перебрать значения, которые вы хотите запихать в IN и вызвать select a where a.field1 == value соответствующее число раз противоречит всем инстинктам человека более-менее знающего sql. Даже у опытных аксапщиков такой подход вызывает интуитивное неприятие. А между тем, при правильной настройке кэширования AOS отрабатывает зацикленные запросы не сильно хуже одного, монструозного. А читать, писать и дебажить циклы несравнимо легче чем sql. Похожесть конструкции на sql настолько взрывает мозг, что даже в официальные best practice внесли идиотское требование в x++ select указывать список выбираемых полей. Это вопервых приводит к трудноуловимым runtime багам, вовторых отрубает кэширование, из-за чего резко падает производительность системы (хотя скорость исполнения конкретного запроса действительно может вырости). На самом деле x++ select это не запрос, а factory метод. Но синтаксис сбивает с толку.
__________________
Isn't it nice when things just work? Последний раз редактировалось macklakov; 23.06.2015 в 08:59. |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#15 |
Участник
|
Помниться разгребал чейто код (наверное MS) в славном модуле PSA в ах2009. Все было настолько запущено, что мало того что форма минуты грузилась так еще и при определенных обстоятельствах SQL запрос выезжал за рамки максимального буфера (был по умолчанию 24Кб).
К чему это я? На той форме как раз ктото напрограмировал динамичиские range.
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0 |
|