|
![]() |
#1 |
Участник
|
Функция в статье неплохая. Довольно корректно конвертирует фильтр, заданный в Навижн на приемлемый в SQL.
Только мне пока не удалось использовать данную конвертированную строку в проседуре SQL в условии WHERE. Т. е. напр-р: SELECT dbo.Fn_Filter_Convert('No_','*4*|000006..0101-004') возвращает: [No_] LIKE '%4%' OR [No_] BETWEEN '000006' AND '0101-004' Казалось бы всё хорошо, но когда подставляю данную функцию уже в select select * from [CompanyName$Item] where dbo.Fn_Filter_Convert('No_','*4*|000006..0101-004') получаю ошибку Msg 4145, Level 15, State 1, Line 3 An expression of non-boolean type specified in a context where a condition is expected, near ')'. Может кто использует данную функцию. Поделитесь опытом. Спасибо за помощь. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от Marisha
![]() Казалось бы всё хорошо, но когда подставляю данную функцию уже в select
select * from [CompanyName$Item] where dbo.Fn_Filter_Convert('No_','*4*|000006..0101-004') получаю ошибку Msg 4145, Level 15, State 1, Line 3 An expression of non-boolean type specified in a context where a condition is expected, near ')'. Тут возможны два варианта. Первый - вы возвращаете в Navision результат вопроса SELECT dbo.Fn_Filter_Convert('No_','*4*|000006..0101-004'), скажем в переменную x а потом, формируя уже запрос к серверу из C/AL SQLStr := "select * from [CompanyName$Item] WHERE "+ x |
|