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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 16:27   #1
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию Фильтрация в Adoquery с использованием or and

Делаю фильтр в AdoQuery. Хотелось бы узнать, есть ли возможность записать примерно так фильтр:
((format='*.zip') or (format='*.rar')) and (status=0)
Потому что (format='*.zip') or (format='*.rar') генерируется автоматически и если прописывать так, то придется менять алгоритм:
(format='*.zip' and status=0) or (format='*.rar' and status=0)

Может есть какие нибудь варианты с сохранением первоначального расположения???
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 11.05.2009, 23:30   #2
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

так будет одно и тоже, кажись, так что оставь первоначальное
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума
Старый 11.05.2009, 23:40   #3
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Цитата:
Сообщение от koma_grusha Посмотреть сообщение
так будет одно и тоже, кажись, так что оставь первоначальное
Дело в том, что первый фильтр будет выводить ошибку.
А значения которые туда забиваются генерируются там таких значений довольно много, и вот и думаю как сделать чтобы в первом варианте фильтра не было ошибки.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 11.05.2009, 23:41   #4
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

текст ошибки, если можно
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума
Старый 11.05.2009, 23:49   #5
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Дело в том, что Format, Status, Path и так далее - это поля. Между ними есть операнды (and или or) выбирает пользователь.
Ошибка возникает если множество соединееное or, а потом and прибавляется. Вот например, такое если в фильтре:
Код:
(path like '%d%')
 or 
((format='*.txt') or (format='*.rtf') or (format='*.doc') or (format='*.chm') or (format='*.pdf') or (format='*.djvu') or (format='*.7z') or (format='*.zip') or (format='*.rar')
 and 
(status=0))
то выводит ошибку Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт с друг другом

чтобы было понятно откуда берутся значения вылаживаю кусок скриншота.
P.S. Для кода где выбирается только одно значение format я нашел как реализовать, чтобы не было ошибок с использованием and ( в нужных местах скобки поставил). Но вот если в format целая серия, здесь не знаю как.......
Вложения
Тип файла: rar скрин.rar (32.3 Кб, 11 просмотров)
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.

Последний раз редактировалось ArtInt; 11.05.2009 в 23:56.
ArtInt вне форума
Старый 11.05.2009, 23:58   #6
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

но у тебя явно неправильная расстановка скобок идет, возможно поэтому, по идее должно быть так
Код:
((path like '%d%')
 or //вообще логичнее здесь and
((format='*.txt') or (format='*.rtf') or (format='*.doc') or (format='*.chm') or (format='*.pdf') or (format='*.djvu') or (format='*.7z') or (format='*.zip') or (format='*.rar')))
 and 
(status=0)

но если вместо отмеченного or стоит and, то синие скобки не нужны
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума
Старый 12.05.2009, 00:05   #7
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

В том и дело так тоже пробовал, но все равно ту же самую ошибку выдает. Почему, мне не совсем понятно.
Кстати, если вводить так, то
(path like '%d%') or ((format='*.txt') and (status=0))
все работает, но это если один format. А если несколько штук???
И если все or между format заменить на and, то тоже все будет работать, например:
(path like '%d%') or (((format='*.txt') and (format='*.txt')) and (status=0))
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.

Последний раз редактировалось ArtInt; 12.05.2009 в 00:18.
ArtInt вне форума
Старый 12.05.2009, 00:16   #8
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

кажись нашла, что-то я раньше не заметила
1) %d% - нельзя так, % ставится только вперед: %d (я так понимаю, вы потом туда значение засылаете)
2) проверье - чтобы строка в запросе была с апострофами, надо в коде заключить их в двойные апострофы (не кавычки), т.е. format=''*.txt''
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума
Старый 12.05.2009, 00:26   #9
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

На самом деле это строка из Memo. A двойные кавычки (стараюсь не употреблять, чтобы не запутаться вместо этого использую quotedstr). Так, что если эту строку присваивать прямо в коде (да, ошибка), но это уже при выводе что там есть( то есть для проверки при работе программы).
А ошибка здесь как раз с этими or и and.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 12.05.2009, 00:37   #10
koma_grusha
Редкий обитатель
Форумчанин
 
Аватар для koma_grusha
 
Регистрация: 08.04.2009
Сообщений: 170
По умолчанию

насчет строки из memo все равно както не то, ну и ладно - вам виднее, а насчет format попрбуйте in
Код:
format in ('*.txt', '*.rtf', '*.doc')
ну и по мере выбора пользователя добавите значния в скобки
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
koma_grusha вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AdoQuery lenuxoid БД в Delphi 6 25.03.2010 18:24
AdoQuery Stanislav БД в Delphi 34 26.06.2009 22:09
ADOQuery Только_Учусь Помощь студентам 2 16.07.2008 00:31
ADOQuery Roof БД в Delphi 2 12.07.2008 18:08
adoquery Toxa БД в Delphi 10 12.02.2007 20:07