01.11.2007, 12:49 | #1 |
Участник
|
Ошибка в интерпретации запроса
Есть вот такой запрос.
queryBalance.dataSourceTable(tableNum(BalanceLine)).findRange(fieldNum(BalanceLine, BOMId)).value(strfmt('!%1,!(%2)', parameter1, parameter2)); parameter1="Парам1"; parameter2="Парам2*,Парам3*"; Он интерпретируется в ((NOT (BOMId = Парам1) AND NOT (BOMId LIKE (Парам2*) OR BOMId LIKE Парам3*))). Если же вводим 3-й параметр отдельно, т.е. parameter1="Парам1"; parameter2="Парам2*"; parameter3="Парам3*"; То тогда SQL запрос выглядит так: ((NOT (BOMId = Парам1) AND NOT (BOMId LIKE Парам2*) AND NOT (BOMId LIKE Парам3*))). По моей логике оба эти запроса должны быть равны, т.к. просто раскрыли скобки и OR заменилось на AND. По логике Axapta в первом случае выражение OR BOMId LIKE Парам3* по-просту игнорируется. В конце концов пришлось оставить второй вариант с 3-мя параметрами Где ошибка? |
|