Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Фильтр на DataSet [D7, MSSQL]


Sergey-ZZZ ©   (2004-02-14 12:15:00) 

Имеется dataSet на основе таблицы такой структуры Id (Int),FIO (VarChar(50)),ZP (VarChar(10)). Нужно на время отфильтровать этот набор данных по двум полям FIO и ZP. Кладу в свойство Filtr следующий фильтр (FIO="Иванов")AND((ZP="100")OR(ZP="200")). Выдает ошибку. Если я в ZP ставлю только одно условие - все нормально. Что делать и как это обойти. А мне нужно несколько условий. :(((
Помогите!


Sergey-ZZZ   (2004-02-14 16:58:00) [1]

Ну да. Я уже перезапрос хотел делать, но благодаря тебе (или Вам) сделал как (FIO="Иванов" AND ZP="100") OR (FIO="Иванов" AND ZP="200") и работает. Но условий у меня много, это привел пример маленький, и текст фильтра формируется огого. А с OnFilterRecord как поступать?


sniknik   (2004-02-14 16:53:00) [2]

другой есть OnFilterRecord у DataSet.
а зачем еще раз тащить? перезапрос чтоли хочеш сделать?


Sergey-ZZZ   (2004-02-14 15:35:00) [3]

Не то слово "странно". А прикинь если и по первому полю тоже надо несколько условий ставить. Красота...Как лучше сделать? Может другой какой-то метод есть? Уж больно не хочется еще раз данные с сервера тащить, а хочется отфильтровать уже существующие. Грущу и плачу :(((


sniknik   (2004-02-14 15:16:00) [4]

(FIO="Иванов" AND ZP="100") OR (FIO="Иванов" AND ZP="200")
зато вот так проходит (проверил), странно да?


Sergey-ZZZ   (2004-02-14 14:46:00) [5]

Ни так FIO="Иванов" AND (ZP="100" OR ZP="200"),
ни так FIO="Иванов" AND ZP IN ("100", "200") не получается.
:(((


sniknik   (2004-02-14 13:45:00) [6]

попробуй количество скобок уменьшить (были как проблемы с вложением скобок в фильтре), непомню конкретно что было но проверь так FIO="Иванов" AND (ZP="100" OR ZP="200")
гарантий что заработает как понимаеш никаких (уж больно смутно помю).
можно еще попробовать фильтр с in (в ADO работало) так
FIO="Иванов" AND ZP IN ("100", "200")


Sergey-ZZZ   (2004-02-14 12:37:00) [7]

Кавычки тут ни при чем, тогда была бы ошибка и при одном условии на поле. А ошибка слудующая: "exception EOLEException. Аргументы имеют неверный тип, выходят за пределы допустимого деапозона или вступают в конфликт друг с другом."
Дело в том, что как только я убираю одно из условий:ZP="100" или ZP="200" все нормально.


Hooch   (2004-02-14 12:22:00) [8]

какую ошибку выдает ? может кавычки не продублированы ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо