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

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

Проблемы с фильтром на ADOQuery. [D7, MSSQL]


Aleksandr ©   (2004-04-27 13:28:00) 

Задаю фильтр для TADOQuery = 'FCID=47 AND CTID=200' - работает.
Задаю фильтр = '(FCID=47 OR FCID=1) AND CTID=200' - ругается, что
аргументы имеют неверный тип, выходят за пределы или вступают в конфликт. Поля интежерные, если подставить это в WHERE, то все в порядке, но с перестройкой запроса нельзя работать - несколько тысяч фильтров он просто умрет переоткрывать с одного и того же датасета, а с фильтром нелады... Что ему надо?


Aleksandr   (2004-04-27 14:43:00) [1]

Ну да... Жаль, что у меня нет столько китайцев под рукой... В чем высший смысл программиста? Он сводится к тому, чтобы, когда компилятор говорит "Низзя!", сказать: "А нада!", и привести убедительные доводы, начиная с соболезнования мелкософту по поводу его рождения и кончая кувалдометром :)). А тут весь смысл-то и обламывается, без китайцев-то...


sniknik   (2004-04-27 14:27:00) [2]

знаеш как китайцы сервер пентагона взломали?
каждый ввел всего один пароль, причем половина ввела "мао цзедун", на половине от второй половины сервер пентагона согласился что пароль "мао цзедун". ;о))


Aleksandr   (2004-04-27 14:22:00) [3]

Пришлось распарсить... Некрасиво, конечно, когда в фильтре двести скобок, ну ладно. Теперь я понимаю, что такое сверхнастойчивость - предлагать неправильный фильтр датасету, пока он не согласится... :(


sniknik   (2004-04-27 13:44:00) [4]

ну так. откажись от самой идеи фильтра(в условии запроса добавь еще и эти условия) или сам задавай в OnFilterRecord.


clickmaker   (2004-04-27 13:44:00) [5]

Ограничения провайдера, скорей всего. Придецца распарсивать


Aleksandr   (2004-04-27 13:39:00) [6]

2 Johnmen: Проба выглядела так: ((FCID=47) OR (FCID=1)) AND (CTID=200). Попробовал даже согласно нотации Хелпа все с пробелами. Эффект одинаков с любыми полями.

2 sniknik: А так работает. Только это же дурдом, если мне распарсивать все фильтры придется на такое! :(


Johnmen   (2004-04-27 13:36:00) [7]

>Попробовал. Совершенно бесполезно.

Как выглядела проба ?


sniknik   (2004-04-27 13:35:00) [8]

а так?
'(FCID=47 AND CTID=200) OR (FCID=1 AND CTID=200)'


Aleksandr   (2004-04-27 13:32:00) [9]

Попробовал. Совершенно бесполезно.


Плохиш   (2004-04-27 13:30:00) [10]

Ну попробуй все равенства в скобки поставить


Наверх

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