|
Почему не работает поиск по условию IN(:param) в Query ?
|
|||
---|---|---|---|
#18+
Добрый день! Возможно кто-то разбирался в проблеме или у кого-то есть решение, буду благодарна за помощь. На страничке объявлен tablePane с подключенным к нему Query, в который передается ряд параметов, один из которых содержит список из нескольких значений, например: param = 1,2,3 Сам запрос замечательно работает в портале, а так же при условии что в условии используем не IN (:param), а пишем напрямую IN (1,2,3) Если же список значений для отбора передается через param, то условие IN (:param) не срабатывает, результат запроса не формируется.Таким образом имеем: Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Пробовали уже по всякому, но решения так и не нашли. Действительно ли в Cache такая вещь не работает или у нас руки не из того места растут?))) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 07:03 |
|
Почему не работает поиск по условию IN(:param) в Query ?
|
|||
---|---|---|---|
#18+
Аленочка, один параметр - одно значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 07:42 |
|
Почему не работает поиск по условию IN(:param) в Query ?
|
|||
---|---|---|---|
#18+
Ptn, для случая с использованием &sql() я так же передаю один параметр, в котором содержится список значений и использую его в условии запроса %INLIST(:param) и запрос работает. Почему тогда в случае Query это не так, однако IN внутри Query работает если значения указать напрямую без параметра - IN (1,2,3) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 07:57 |
|
Почему не работает поиск по условию IN(:param) в Query ?
|
|||
---|---|---|---|
#18+
АленочкаПробовали уже по всякому, но решения так и не нашли. Действительно ли в Cache такая вещь не работает или у нас руки не из того места растут?)))Уже обсуждалось: 5440271 , 7939318 , 12477966 . ДокументацияIn Dynamic SQL you can supply the %INLIST predicate values as a single host variable. You must supply the IN predicate values as individual host variables. Therefore, changing the number of IN predicate values results in the creation of a separate cached query. Changing the number of %INLIST list element predicate values does not result in the creation of a separate cached query. IN and %INLIST Перепишите запрос и будет Вам счастье: Код: plaintext 1. 2. 3.
PS: Вас не могло не насторожить сообщение об ошибке компиляции для запроса вида SELECT ... FROM ... WHERE MyProperty IN :param OR ISNULL(:param,'')='' и отсутствие такового для SELECT ... FROM ... WHERE MyProperty IN (:param) OR ISNULL(:param,'')='' ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 08:45 |
|
Почему не работает поиск по условию IN(:param) в Query ?
|
|||
---|---|---|---|
#18+
servit, да счастье действительно пришло, %INLIST $LISTFROMSTRING(:param) - помогло, спасибо))) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 09:30 |
|
Почему не работает поиск по условию IN(:param) в Query ?
|
|||
---|---|---|---|
#18+
В принципе, там необязательно списки-строки-равенство, можно накрутить любой разбор параметра для фильтрации. http://thedarkaugust.blogspot.ru/2016/04/cache-select-from-in.html ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2016, 11:16 |
|
|
start [/forum/topic.php?fid=39&msg=39268504&tid=1556452]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 269ms |
total: | 406ms |
0 / 0 |