powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сложный фильтр
6 сообщений из 6, страница 1 из 1
Сложный фильтр
    #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
Сложный фильтр
    #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
Сложный фильтр
    #33164596
@lex_m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал, все равно ругается.
...
Рейтинг: 0 / 0
Сложный фильтр
    #33164733
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ййй
...
Рейтинг: 0 / 0
Сложный фильтр
    #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
Сложный фильтр
    #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
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сложный фильтр
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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