Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Гибкий запрос с разными фильтрами / 12 сообщений из 12, страница 1 из 1
28.07.2017, 23:18
    #39496936
wrq2017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
Добрый день!
Создаю запрос, основной целью которого является возможность фильтрации по параметрам, понимаю, что задача классическая, но найти ничего подобного не смог.
Т.е. запрос вида
Код: sql
1.
select * from table where id_1=param1 and id_2=param2 and id_3=param3 and ...



Теперь вопрос - как сделать так, чтобы исключить фильтрацию по одному или нескольким элементам?
Не хочется на каждый случай писать свою строку запроса:
Код: sql
1.
select * from table where id_2=param2 and id_3=param3 and ...


Код: sql
1.
select * from table where id_1=param1 and id_3=param3 and ...


и т.д.

Как написать универсальную строку запроса?

Опытным путем определил, что в самом MS Access пропадает фильтрация по элементу, если будет запрос вида:
Код: sql
1.
select * from table where id_2=true and id_3=true ...



Но из приложения (C#) делаю следующее:
1. присваиваю параметру (переменная типа OleDBType.Integer) значение true (всё ок)
2. передаю этот параметр в запрос и... ничего не происходит.
...
Рейтинг: 0 / 0
29.07.2017, 00:47
    #39496948
sereginseregin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
wrq2017,
Не уверен в синтаксисе Access
авторselect * from table
where (id_1=param1 OR param1 is NULL)
and (id_2=param2 OR param2 is NULL)
and (id_3=param3 OR param3 is NULL)
and ...

т.е. если параметр отбора не нужен, передаешь NULL
...
Рейтинг: 0 / 0
29.07.2017, 10:01
    #39496968
vixxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
wrq2017присваиваю параметру (переменная типа OleDBType.Integer) значение true (всё ок).
Булевое True числовой переменной??? ну-ну....
...
Рейтинг: 0 / 0
29.07.2017, 10:10
    #39496969
wrq2017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
vixxa, на самом деле, как я понимаю, тип данных Object и можно присваивать что угодно. Шарп при компиляции не ругается...
...
Рейтинг: 0 / 0
29.07.2017, 10:12
    #39496970
wrq2017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
sereginseregin, да я видел на форуме такой подход. Засомневался, но видимо только он и будет работать. Спасибо, надо попробовать.
...
Рейтинг: 0 / 0
29.07.2017, 10:20
    #39496972
Alibek B
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
wrq2017vixxa, на самом деле, как я понимаю, тип данных Object и можно присваивать что угодно.
Нет, не понимаешь.
...
Рейтинг: 0 / 0
29.07.2017, 10:34
    #39496973
vixxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
wrq2017vixxa, на самом деле, как я понимаю, тип данных Object и можно присваивать что угодно. Шарп при компиляции не ругается...
не уверен по поводу Шарпа, но сильно сомневаюсь в том, что он компилирует строки (непосредственно текст) запроса....
...
Рейтинг: 0 / 0
29.07.2017, 10:36
    #39496974
vixxa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
wrq2017,

вставьте в предложение WHERE правильные критерии - и будет счастье.
...
Рейтинг: 0 / 0
29.07.2017, 11:30
    #39496976
wrq2017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
Всем спасибо! Тему можно считать закрытой. Способ, предложенный "sereginseregin" действительно работает. Только у меня в комбо-боксы (фильтрующие элементы на форме) к BindingSource добавляется строка [0, Все] и, соответственно, фильтр отрабатывает так как нужно по запросу вида
Код: sql
\r\nselect * from table where (id_1=param1 or param1=0) and ...\r\n
\r\n
...
Рейтинг: 0 / 0
29.07.2017, 11:33
    #39496977
wrq2017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
vixxa,
1. про компиляцию я имел ввиду не строки запроса, конечно, а самого приложения;
2. начальный вопрос и был про корректное формирование критериев запроса раздела WHERE :)
...
Рейтинг: 0 / 0
29.07.2017, 13:08
    #39496987
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
wrq2017,
...
Рейтинг: 0 / 0
30.07.2017, 10:03
    #39497153
wrq2017
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гибкий запрос с разными фильтрами
sdku, отличный пример! Только у меня приложение на c#. Поэтому иногда возникают проблемы с соответствием типов данных :)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Гибкий запрос с разными фильтрами / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]