|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
11.05.2009, 16:27 | #1 |
Форумчанин
Регистрация: 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) Может есть какие нибудь варианты с сохранением первоначального расположения???
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
11.05.2009, 23:30 | #2 |
Редкий обитатель
Форумчанин
Регистрация: 08.04.2009
Сообщений: 170
|
так будет одно и тоже, кажись, так что оставь первоначальное
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
|
11.05.2009, 23:40 | #3 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Дело в том, что первый фильтр будет выводить ошибку.
А значения которые туда забиваются генерируются там таких значений довольно много, и вот и думаю как сделать чтобы в первом варианте фильтра не было ошибки.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
11.05.2009, 23:41 | #4 |
Редкий обитатель
Форумчанин
Регистрация: 08.04.2009
Сообщений: 170
|
текст ошибки, если можно
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
|
11.05.2009, 23:49 | #5 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
Дело в том, что Format, Status, Path и так далее - это поля. Между ними есть операнды (and или or) выбирает пользователь.
Ошибка возникает если множество соединееное or, а потом and прибавляется. Вот например, такое если в фильтре: Код:
чтобы было понятно откуда берутся значения вылаживаю кусок скриншота. P.S. Для кода где выбирается только одно значение format я нашел как реализовать, чтобы не было ошибок с использованием and ( в нужных местах скобки поставил). Но вот если в format целая серия, здесь не знаю как.......
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
Последний раз редактировалось ArtInt; 11.05.2009 в 23:56. |
11.05.2009, 23:58 | #6 |
Редкий обитатель
Форумчанин
Регистрация: 08.04.2009
Сообщений: 170
|
но у тебя явно неправильная расстановка скобок идет, возможно поэтому, по идее должно быть так
Код:
но если вместо отмеченного or стоит and, то синие скобки не нужны
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
|
12.05.2009, 00:05 | #7 |
Форумчанин
Регистрация: 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. |
12.05.2009, 00:16 | #8 |
Редкий обитатель
Форумчанин
Регистрация: 08.04.2009
Сообщений: 170
|
кажись нашла, что-то я раньше не заметила
1) %d% - нельзя так, % ставится только вперед: %d (я так понимаю, вы потом туда значение засылаете) 2) проверье - чтобы строка в запросе была с апострофами, надо в коде заключить их в двойные апострофы (не кавычки), т.е. format=''*.txt''
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
|
12.05.2009, 00:26 | #9 |
Форумчанин
Регистрация: 06.03.2009
Сообщений: 583
|
На самом деле это строка из Memo. A двойные кавычки (стараюсь не употреблять, чтобы не запутаться вместо этого использую quotedstr). Так, что если эту строку присваивать прямо в коде (да, ошибка), но это уже при выводе что там есть( то есть для проверки при работе программы).
А ошибка здесь как раз с этими or и and.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
|
12.05.2009, 00:37 | #10 |
Редкий обитатель
Форумчанин
Регистрация: 08.04.2009
Сообщений: 170
|
насчет строки из memo все равно както не то, ну и ладно - вам виднее, а насчет format попрбуйте in
Код:
Мозг, хорошо устроенный, стоит больше, чем мозг, хорошо наполненный (Мишель Монтень)
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |