![]() |
|
|
![]()
|
|
| lynx13 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
У меня 12 параметров поиска... Понятно, что выбор каждого из них нужен по необходимости (т.е какие-то будут учитываться, а какие-то останутся пустыми)...как мне сделать запрос так, чтобы не перебирать все возможные варианты???
(т.е. if (dblookupComboBox2.Text='') and (dblookupComboBox2.Text='') and ...and not(edit1.text='') then запрос1 if not(dblookupComboBox2.Text='') and (dblookupComboBox2.Text='') and ...and not(edit1.text='') then запрос2 и т.д. 12! разных условий) |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
а можно конкретизировать?
возникала подобная задача, правда не с БД. решил просто: значения всех компонентов циклом объединял в одну строку-запрос, если значение не было указано -- в строке отсутствовало -- в запросе не участвовало, разве что иногда была проверка: если поле пустое -- подставлять * |
|||
|
||||
| lynx13 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
Так вот просто в моем случае нужно дофига проверок...а столько вручную не напишешь...
|
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
то, что много, это было сразу понятно; но, к сожалению, это, собственно, практически единственное из понятного
среди чего, хоть, искать? |
|||
|
||||
| lynx13 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
Не может есть какой-нить другой способ чтобы эти запросы написать...
Я например так пишу:
и так далее пока не переберу все варианты |
|||
|
||||
| aleksh |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 609 Регистрация: 8.7.2008 Репутация: 2 Всего: 13 |
с ораклом не знаком, поэтому понял приблизительно, но есть такой вариант:
объявляется две строки (условно - стр1 и стр2), задается поиск компонентов по форме (они же на одной форме?), дальше ветление: если компонента (dblookupComboBox) и не пустая -- то читается название и согласно ему дополняется стр1 (например: если нашил не пустую dblookupComboBox2 то стр1:=стр1+'and blocks.BLOCKDESCR = ''%s''), по тому же принципу и с эдитами и второй строкой (например: если нашил не пустую edit1.Text='', то стр2:=стр2+edit1.Text,), когда все пройдено -- формируем итоговую строку:
вот если бы эти комбобоксы да эдиты можно было бы забить в массив... понимаю, "закрученно", пожалуй можно проще, это первое что пришло в голову... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
12 это дофига????????
|
|||
|
||||
| offline |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 474 Регистрация: 7.2.2005 Репутация: 7 Всего: 7 |
Создай запрос с параметрами и все, а потом присваивай эти параметры в зависимости от значения данных.
|
|||
|
||||
| lynx13 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 120 Регистрация: 15.2.2008 Репутация: нет Всего: нет |
aleksh
Спасибо!!! Я б не додумалась наверное |
|||
|
||||
| uranpro |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 571 Регистрация: 7.5.2008 Где: Moscow city Репутация: нет Всего: 1 |
offline, согласен!
и условия через <or>
-------------------- I want a perfect soul |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |