Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Базы данных > CBuilder ADOQuery->Filter ошибка с AND и OR


Автор: KateL 15.10.2017, 12:21
Здравствуйте.

Наткнулась на странную ошибку и не знаю, как ее обойти.

Имеем TADOQuery Q с полями Lat и Lon числового дробного типа. Запрос открыт.

При попытке фильтрации вылетает ошибка: "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом"

Q->Filter = "(Lat >= -10) AND (Lat <= 10) AND ( (Lon >= 100) OR (Lon <= -100)) ";
Q->Filtered = true; // - вылетает ошибка

Тот же фильтр, но без скобок вокруг OR ошибки не выдает (но результат, понятно, получаем другой)
 
Q->Filter = "(Lat >= -10) AND (Lat <= 10) AND (Lon >= 100) OR (Lon <= -100) ";
Q->Filtered = true; // - ошибки нет

То же условие, вставленное в текст запроса, работало корректно, но мне потребовалось отфильтровать данные не закрывая запрос.

Можно ли как-то это побороть?
С уважением, Екатерина.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)