Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько параметров в WHERE 
:(
    Опции темы
maxnoskov
Дата 8.11.2006, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 21.6.2006
Где: Мурманск

Репутация: нет
Всего: нет



Привет.
Подскажите как мне реализовать sql-выражение select, если я изначально не знаю сколько параметров будет в WHERE 
PM MAIL   Вверх
skyboy
Дата 8.11.2006, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: нет
Всего: 260



maxnoskov, как это? "не знаешь" -  в смысле, во время проектирования не знаешь или даже после запуска должен фильтровать неизвестно как?  smile 
Если не знаешь во время проектирования, но во время запуска узнаешь, так формируй динамически... Как я понимаю, при любом методе доступа SQL-запрос - это просто строка... Так производи конкатенацию строк и получай, что тебе надо... Как запрос формируешь-то?
PM MAIL   Вверх
thomas
Дата 8.11.2006, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



maxnoskov, 
Я конечно не большой спец, а только учусь.

Я бы это сделал так:
Для всего того что касается WHERE обьявил бы отдельную переменну типа String и инициализировал ее как пустую.
Потом вставил ее в запрос SQL  => запрос="SELECT * FROM table" + переменная.
Если условий нет, то выбирается все из заданной таблицы. 
А если во время выполнения появяться условия то они попадут в запрос 
запрос = "SELECT * FROM table" + "WHERE veld1=waarde"

Мне кажеться должно сработать.


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
maxnoskov
Дата 8.11.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 112
Регистрация: 21.6.2006
Где: Мурманск

Репутация: нет
Всего: нет



Цитата(skyboy @ 8.11.2006,  14:33)
maxnoskov, как это? "не знаешь" -  в смысле, во время проектирования не знаешь или даже после запуска должен фильтровать неизвестно как?  smile 
Если не знаешь во время проектирования, но во время запуска узнаешь, так формируй динамически... Как я понимаю, при любом методе доступа SQL-запрос - это просто строка... Так производи конкатенацию строк и получай, что тебе надо... Как запрос формируешь-то?

Дело в том, что мне надо делать выборку по районам, а количество районов и их название может со временем изменится. Отсюда вопрос, если строку where создавать динамически, то сколько параметров может в ней уместиться. ну я имею в виду, сколько вариантов WHERE () or () or () и т.д
PM MAIL   Вверх
Дрон
Дата 8.11.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


Профиль
Группа: Участник Клуба
Сообщений: 3179
Регистрация: 29.12.2002
Где: Санкт-Петербург

Репутация: 5
Всего: 93



Цитата(maxnoskov @  8.11.2006,  15:07 Найти цитируемый пост)
то сколько параметров может в ней уместиться

Ну... много smile

Что мешает написать WHERE a = b OR c = d OR e = f и т.д. ?

Добавлено @ 15:29 
Но вообще я не понял в чём суть проблемы  smile 


--------------------
Да. Именно так.
PM   Вверх
Rodman
Дата 8.11.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



Код

SELECT * FROM Table
WHERE ((ID=:Prm1)and(Name=:Prm2)and(..)..);


или 

Код

SELECT * FROM Table
WHERE ((ID=:Prm1)or(Name=:Prm2)or(..)..);


PM MAIL WWW Skype GTalk YIM MSN   Вверх
kobra
Дата 12.11.2006, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



а что, IN уже отменили?
Код

SELECT * FROM Table
WHERE Name IN ('название1', 'название2', ..., 'названиеN')

будет быстрее с ID

PM MAIL   Вверх
nikitao
Дата 12.11.2006, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кот-программист
***


Профиль
Группа: Завсегдатай
Сообщений: 1206
Регистрация: 30.8.2005
Где: Спб

Репутация: 1
Всего: 26



Я извиняюсь smile но причем тут .NET  smile  ???


--------------------
Жизнь - печальная штука.
PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1974 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.