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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2009, 17:06   #1  
Marisha is offline
Marisha
Участник
 
42 / 10 (1) +
Регистрация: 03.11.2011
Функция в статье неплохая. Довольно корректно конвертирует фильтр, заданный в Навижн на приемлемый в 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 ')'.

Может кто использует данную функцию. Поделитесь опытом.

Спасибо за помощь.
Старый 21.01.2009, 19:36   #2  
artkashin is offline
artkashin
Участник
MCBMSS
 
519 / 18 (2) ++
Регистрация: 06.12.2006
Цитата:
Сообщение от 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 ')'.
Так нельзя. Вы пытаетесь в статическом SQL запросе выполнить динамический.
Тут возможны два варианта.
Первый - вы возвращаете в Navision результат вопроса
SELECT dbo.Fn_Filter_Convert('No_','*4*|000006..0101-004'), скажем в переменную x
а потом, формируя уже запрос к серверу из C/AL
SQLStr := "select * from [CompanyName$Item] WHERE "+ x
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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