powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нужна помощь!!! Проблемы с TADODataSet.Filter
7 сообщений из 7, страница 1 из 1
Нужна помощь!!! Проблемы с TADODataSet.Filter
    #32044992
Лана
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня следующая проблема с ADODataSet

Это работает :
Код: plaintext
1.
2.
3.
  ADODataSet.Filter := '( Field1 = ''aaa'' AND Field2 = ''bbb'' )';
  ADODataSet.Filtered := true;



И это работает :
Код: plaintext
1.
2.
3.
  ADODataSet.Filter := '( Field1 = ''aaa'' OR Field1 = ''ccc'' )';
  ADODataSet.Filtered := true;



А вот так не работает :
Код: plaintext
1.
2.
3.
  ADODataSet.Filter := '( Field1 = ''aaa'' OR Field1 = ''ccc'' ) AND ( Field2 = ''bbb'' )';
  ADODataSet.Filtered := true;


Выдает ошибку : " Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another"

Почему могут быть такие проблемы с фильтром, при одновременном использовании операторов AND и OR в одном условии. Ведь по отдельности все работает.....
...
Рейтинг: 0 / 0
Нужна помощь!!! Проблемы с TADODataSet.Filter
    #32045015
art
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
art
Гость
Поля какого типа?
Из хелпа
'BORLAND' { BORLAND }

'You''ll see' { You'll see }
'''' { ' }
'' { null string }
' ' { a space }

Может там '''' надо вместо '' что бы получить кавычки
STRING
...
Рейтинг: 0 / 0
Нужна помощь!!! Проблемы с TADODataSet.Filter
    #32045032
Лана
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поля строковые. С кавычками все в порядке.
И все прекрасно работает если использовать в фильтре только оператор AND или только оператор OR. Но при использовании обоих операторов начинаются проблемы.
...
Рейтинг: 0 / 0
Нужна помощь!!! Проблемы с TADODataSet.Filter
    #32045074
MIKLUHA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

Попробуйте вот так:

ADODataSet.Filter := '( Field1 = ''aaa'' AND Field2 = ''bbb'' ) OR ( Field1 = ''ccc'' AND Field2 = ''bbb'' ) ';
ADODataSet.Filtered := true;

Желаю успехов.
...
Рейтинг: 0 / 0
Нужна помощь!!! Проблемы с TADODataSet.Filter
    #32045153
Лана
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 MICLUHA

Спасибо за совет, так работает.

Но при подобном решении простые условия фильтра
превращаются в монстров, неужели нет другого выхода из данной проблемы????
...
Рейтинг: 0 / 0
Нужна помощь!!! Проблемы с TADODataSet.Filter
    #32045364
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше вообще не фильтровать датасет, а писать условия отбора в селекте и "перечитывать" запрос.
...
Рейтинг: 0 / 0
Нужна помощь!!! Проблемы с TADODataSet.Filter
    #32165404
equites
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 MICLUHA

Вы перемножили значения в скобках ...
а теперь предствьте, что у меня фильтр состоит из следующего (я его формирую динамически) :

((F1=Value) OR ...(Fi=Value)) AND ((F1=Value) OR ... (Fj=Value)),
где j, i = 20.

перемножение всего на всё - не очень ... и как бороть эту фильтрацию - пока не знаю ... может кто подскажет
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Нужна помощь!!! Проблемы с TADODataSet.Filter
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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