Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сложный фильтр / 6 сообщений из 6, страница 1 из 1
13.07.2005, 18:06
    #33164420
@lex_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный фильтр
Привет всем посетителям.
Использую TADODataSet на основе достаточно сложной ХП, поэтому не хочу дополнять ее еще параметрами, а сделать клиентский фильтр.
В стандартном SQL варианте мне нужно применить такой фильтр

(F1 = 'xxx' and F2 = 'yyy') and ( F3 is not null or F4 is not null or F5 is not null)

по отдельности обе скобки нормально фильтрят, а вместе - получаю сообщение: "неверный тип данных, вне допустимого значения либо взаимный конфликт. Читал где-то в форуме о привередливости к скобкам в фильтре, но не все понятно. как правильно написать такую строку фильтра? Или можно ли получить клон датасета но не со всеми записями, а часть с заданными параметрами. пробовал фильтранут датасет, а потом получить его клон, но там все равно все записи, а билдеровской справке, как в совдеповском гастрономе.
Заранее спасибо!
...
Рейтинг: 0 / 0
13.07.2005, 18:53
    #33164517
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный фильтр
Со скобками можно так:
((F1 = 'xxx') and (F2 = 'yyy')) and
(( F3 is not null) or (F4 is not null) or (F5 is not null))
...
Рейтинг: 0 / 0
13.07.2005, 19:56
    #33164596
@lex_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный фильтр
Пробовал, все равно ругается.
...
Рейтинг: 0 / 0
13.07.2005, 23:49
    #33164733
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный фильтр
ййй
...
Рейтинг: 0 / 0
13.07.2005, 23:51
    #33164734
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный фильтр
Со собками у тебя все нормально (либо давай весь запрос),
даже вместо

Код: plaintext
1.
(F1 = 'xxx' and F2 = 'yyy') and ( F3 is not null or F4 is not null or F5 is not null)

надо бы писать

Код: plaintext
1.
F1 = 'xxx' and F2 = 'yyy' and ( F3 is not null or F4 is not null or F5 is not null)
Но это естественно важно только для читаемости человеком.
...
Рейтинг: 0 / 0
14.07.2005, 08:48
    #33164911
@lex_m
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сложный фильтр
Да вот не так все просто оказывается.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdprofilter.asp

Вместо (F1 = 'xxx' and F2 = 'yyy') and ( F3 is not null or F4 is not null or F5 is not null) надо писать

(F3 is not null and F1 = 'xxx' and F2 = 'yyy') or (F4 is not null and F1 = 'xxx' and F2 = 'yyy') or (F5 is not null and F1 = 'xxx' and F2 = 'yyy'). Когда я так сделал в соотв. с вышеуказанной ссылкой, то все без проблем заработало.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сложный фильтр / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]