powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / генерирование selectа для фильтрации грида
14 сообщений из 14, страница 1 из 1
генерирование selectа для фильтрации грида
    #33725884
Есть форма. На ней грид и комбобоксы. Выбрав в комбобоксе (-ах) значения, грид должен отобразить отфильтрованные данные.
Проблема в том, что фильтрация в одном запросе может быть только по одному полю, а в другом сразу по всем. Как реализовать такой запрос одной строкой.
PS. Приложение пишу в С#
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725908
AsPiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очередной сеанс ТормоЖжения?
Что конкретно не понятно: как в запросе несколько условий объединить?

P.S. C# - это конечно хорошо, но какое отношение это имеет к InterBase, Firebird, Yaffil?

-------------------------------------------------------------------
I Live Again!
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725910
Фотография mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Select что_нужно from откуда_взять
where условие_из_первого_комбобокса
and условие_из_второго_комбобокса
and условие_из_третьего_комбобокса
....

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725919
да как select использовать я знаю.
вот например : Com = "select * from Otchet where kod = " + Kod + " and " + "Data between " + "'" + dtpC.Text + "'" + " and " + "'" + dtpPo.Text + "'" + " order by Name_P ascending";
У меня получается, что значение для сравнения берется из формы, а если его нет? Тогда получится такая строка для запроса (не выбрал Kod): Com = "select * from Otchet where kod = and " + "Data between " + "'" + dtpC.Text + "'" + " and " + "'" + dtpPo.Text + "'" + " order by Name_P ascending";
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725924
А непонятно то, как сделать запрос, где были бы указаны все условия для select, даже если некоторые не будут выбраны. т.е. нужен некий автоселект (если такое вообще возможно) который бы сам подставлял значения для where если они есть и не подставлял - если их нет.
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725942
AsPiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Используй параметризированные запросы!
2) Ну так сделай в проге разбор по условиям:
если пользователь выбрал в кобобоксе1 что-то -> вставить в запрос соответсвующее условие.
если пользователь НЕ выбрал в кобобоксе1 что-то -> НЕ вставить в запрос соответсвующее условие.





I Live Again!
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725956
AsPiro1) Используй параметризированные запросы!

вот наверно это то, что надо. А как?

2) Ну так сделай в проге разбор по условиям

так я и начал делать так, но подумал и остановился. У меня 4 комбобокса -> 10 вариантов комбинаций (1-2-3-4, 2-3-4, 3-4, 4), а если порядок поменять, тогда вообще, так что не катит.
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725969
Dynamic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рискуя получить по шапке.....вот, простенько (для Дельфи):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
var s: string;
IBQuery.SQL.Text := 'SELECT * FROM Table';
s := '';
if ComboBox1.Text <> '' then
 s := s + 'FIELD1=' + QuotedStr(ComboBox1.Text);
if ComboBox2.Text <> '' then
begin
 if s <> '' then
  s := s + ' AND ';
  s := s + 'FIELD1=' + QuotedStr(ComboBox2.Text);
end;
..........
if s <> '' then
 IBQuery.SQL.Add('WHERE ' + s);
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725983
Borr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dynamic
фигня это все. Ставиш SELECT Pole, Pole1 FROM Table WHERE 1=1.... И тогда не надо будет отрабатывать AND'ы (везде будет надо ставить AND и не морочить с ним голову)
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33725987
AsPiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Олег из Омска AsPiro1) Используй параметризированные запросы!

вот наверно это то, что надо. А как?

Тут я наверное маленько погорячился:)

Олег из Омска
2) Ну так сделай в проге разбор по условиям

так я и начал делать так, но подумал и остановился. У меня 4 комбобокса -> 10 вариантов комбинаций (1-2-3-4, 2-3-4, 3-4, 4), а если порядок поменять, тогда вообще, так что не катит.

Да хоть мульён вариантов:)
Порядок следования условий не имеет значения!
Что 2-3-4, что 3-2-4, что 4-3-2 серверу по суфиксу!


А сами условия формируй примерно так:
Если kod устновлен, то
Код: plaintext
select * from Otchet where (kod =  123 )and(...)and(...)
иначе
Код: plaintext
select * from Otchet where (...)and(...)
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33726258
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С такими проблемами надо в другой форум... куда смотрят модераторы...
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33726341
а такой запрос что делает? зачем @?
select * from Otchet where kod = @kod
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33727053
Фотография Kull Damned
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> С такими проблемами надо в другой форум... куда смотрят модераторы...
Работаем... Иногда... Поехали в "Программирование"...
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
генерирование selectа для фильтрации грида
    #33727469
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше такое писать с помощью N отдельных запросов и выполнять в зависимости от условий один из них. Если конечно у тебя не таблица в 100 строк или если большая, но в которой ни одного индекса нет.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / генерирование selectа для фильтрации грида
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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