Показать сообщение отдельно
Старый 16.01.2002, 22:10   #16  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Немного разгреб дела.
Продолжим разговор?

В Аксапте условие "или" по одному полю делается с помощью "," в Range.Value(). Поэтому вопрос по одному полю не стоит. Так?

Как в Query можно задать условие "или" по двум полям (Field1=Value1 or Filed2=Value2) аналогичное
Цитата:
while select * from table1
where table1.field1 == 15 ||
table1.field2 == 20

{
element.execute(1)
}
PlasticinE, так? Я правильно сформулировал?

Насколько я понимаю, Query в Аксапте реализует концепцию QBE - query by example. Пример реализации - конструктор запросов в Access (кстати, в первый раз реализацию QBE я видел в Paradox'е. Там тоже выразить или было достаточно тяжело). В Access'е для того, чтобы добавить условие или надо добавить строчку.

Первое что приходит в голову, это то, что datasource в Аксапте соответствует одной строчке в конструкторе запросов Access'а. Значит, чтобы "добавить вторую строчку" надо добавить datasource.

Развиваем мысль.

Делаем запрос с двумя связанными датасоурсами. Оба датасоурса используют одну и ту же таблицу. В первом датасоурсе Range по Field1, а во втором датасоурсе Range по Field2.
Тип соединения датасорусов outerJoin. Что-нибудь в этом духе.

Нет сил сейчас проверить. Но думаю, что рыть надо примерно в этом направлении.

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



Альтернатива - подсунуть в query вручную написанный SQL-запрос. Но тогда никаких разборов выполняться не будет. И, видимо, будут проблемы с like (судя по сообщению PlasticinE).


А можно и к вам вопрос?
PlasticinE, AlGol, А в каких случаях может понадобится поиск с ИЛИ, да еще и с использованием Like? Неужто для поиска контрагента по частичному коду ИЛИ частичному названию? Если да, то зачем? Или есть другая задача?


max, а где в руководстве об этом написано? Можешь ткнуть?
__________________
полезное на axForum, github, vk, coub.