Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2011, 12:29   #1
UNToxa
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 13
По умолчанию Неправильное применение and / or

Код:
ADOQuery1.Filtered:=True
ADOQuery1.Filter:= 'data2>='+QuotedStr(myD1)+ ' and (ctp.status=1)  and (sposob=1 or sposob=2) and data2 <='+QuotedStr(myD2);
выдает ошибку - Аргументы имеют неверный тип, выходят за пределами допустимого диапазона или вступают в конфликт друг с другом

при запросе
Код:
ADOQuery1.Filtered:=True;
ADOQuery1.Filter:= 'data2>='+QuotedStr(myD1)+ ' and (ctp.status=2)  and sposob=1 and data2 <='+QuotedStr(myD2);
всё нормально работает

Как правильно применить оператор OR
UNToxa вне форума Ответить с цитированием
Старый 13.11.2011, 12:45   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
ADOQuery1.Filtered:=False; //если ранее был фильтр установлен
ADOQuery1.Filter:= ...
ADOQuery1.Filtered:=True;
И что значит ctp.status в условии фильтра?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.11.2011, 13:05   #3
UNToxa
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 13
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
ADOQuery1.Filtered:=False; //если ранее был фильтр установлен
ADOQuery1.Filter:= ...
ADOQuery1.Filtered:=True;
И что значит ctp.status в условии фильтра?

ctp.status это поле status таблицы ctp имеющее значения либо 1, либо 2. В ADOQuery указывается как ctp.status,т.к. имеет связанную таблицу.

фильтр ранее не был установлен.

без OR фильтр работает без проблем

Зачем вы отвечаете с цитированием всего предыдущего поста ?
Чтоб "простыня" подлиннее получилась ?
Чтоб ваш "драгоценнейший" пост занимал весь экран ?
Вы не видите кнопку справа от кнопки "Цитата" ?
Или вам почему-то не видно пустое окно редактора под последним сообщением, куда можно просто ввести ответ ?
За оверквотинг у нас штрафуют, имейте это ввиду.
Дабы не нарушать правила раздела, внимательно их почитайте...

Последний раз редактировалось mihali4; 13.11.2011 в 13:26.
UNToxa вне форума Ответить с цитированием
Старый 13.11.2011, 13:50   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. Прежде всего имелось ввиду, что Filtered:=True делается после изменения Filter, а не до.
2. Указание алиаса в условие фильтра (ctp.) не имеет ни какого смысла, ибо этот фильтр ни какого отношения к таблицам и базе не имеет, а только делает видимыми или нет записи уже выбранные из таблиц базы. Скорее всего его наличие даст ошибку, не проверял
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.11.2011, 09:48   #5
BeJIuKuu_Hexo4yxa
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 96
По умолчанию

С точки зрения порядка выполнения операторов сначала выполняются булевы операции, а потом другие, т.е. в выражении (sposob=1 or sposob=2) первым будет
1 or sposob
Чтоб все заработало попробуй сравнение взять в скобки:
((sposob=1) or (sposob=2))
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Стив Макконнелл)
BeJIuKuu_Hexo4yxa вне форума Ответить с цитированием
Старый 14.11.2011, 10:40   #6
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

предлагаю автору темы оттестировать условие запроса в базу сначала в самой базе (в SQL редакторе запросов), а потом переносить его в программу.
Lesha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Неправильное отображение изображений Ga-sergey HTML и CSS 8 10.05.2010 21:03
Строки неправильное выполнение программы ArniLand Общие вопросы C/C++ 3 30.03.2010 01:23
Неправильное отображение Verdana в IE go0dwin HTML и CSS 3 09.07.2009 16:41
Неправильное воспроизведение медиаплеером XATAB Мультимедиа в Delphi 3 02.03.2009 09:07
Неправильное отображение шрифта chingiz Общие вопросы Delphi 2 25.01.2008 18:47