Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 16.06.2010, 09:39   #1
Епгений
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 59
По умолчанию Sql запрос по нескольким полям

Драсте товарищи программисты прошу помощи в одном деле.
в БД я сделал поиск, использовал для этого SQL. Я сделал поиск по 2-м поля Место -- ComboBox1
Пол -- ComboBox2
вот код:
procedure TForm6.Button1Click(Sender: TObject);
begin
DataModule2.FindQuery.Active:=false ;
DataModule2.FindQuery.SQL.Clear;
DataModule2.FindQuery.SQL.Add('SELE CT *');
DataModule2.FindQuery.SQL.Add('FROM Журнал');
DataModule2.FindQuery.SQL.Add ('where Место LIKE '''+FindBox1.Text+''' and пол LIKE '''+FindBox2.Text+'''');
DataModule2.FindQuery.Active:=true;
Form5.ShowModal;
end;

так вот если сделать поиск сразу по двум поля то работает, а если по отдельности то не находит.
и ещё в будущем я собираюсь сделать поиск по 6 полям как это сделать пока не знаю.

Последний раз редактировалось artemavd; 19.06.2010 в 19:38. Причина: Орфографическая ошибка в названии темы
Епгений вне форума
Старый 16.06.2010, 10:17   #2
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Все очень просто твой запрос написан так что требует оба параметра.
Если ты один из них не вводишь то получаешь запрос с одним пустым параметром. Т.е.
Код:
SELECT * FROM журнал 
WHERE Место LIKE 'некое место' 
AND пол LIKE ''
А записей удовлетворяющих этим параметрам у тебя нет вот ты и получаешь пустую выборку.

Теперь как поправить можешь перестраивать текст запроса так чтоб при недостатке параметров не нужная часть просто исключалась и не использовалась.
Например
если пустое поле место
Код:
SELECT * FROM журнал 
WHERE пол LIKE 'некий пол'
если пустое поле пол
Код:
SELECT * FROM журнал 
WHERE Место LIKE 'некое место'
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума
Старый 16.06.2010, 12:15   #3
Епгений
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 59
По умолчанию

rdama спасибо что откликнулись но я не правилно сформулировал свои мысли. Мне нужно что бы находило и так и так т.е обе параметры заполнены и или только с одним заполненным.

Последний раз редактировалось Епгений; 16.06.2010 в 12:34.
Епгений вне форума
Старый 16.06.2010, 12:21   #4
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

Все тоже самое что и в предыдущем моем посте. С заполненными параметрами
Код:
SELECT * FROM журнал 
WHERE Место LIKE 'некое место' 
AND пол LIKE 'некий пол'
С пустыми параметрами
Код:
SELECT * FROM журнал
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума
Старый 16.06.2010, 12:47   #5
rdama
Форумчанин
 
Аватар для rdama
 
Регистрация: 25.07.2009
Сообщений: 533
По умолчанию

http://narod.ru/disk/21910821000/new_search.rar.html

Вот накидал тебе пример чтоб понятнее было.
Маразм крепчал. Еноты пели...
R-style Dataknowlege Access Member Account (RDAMA)
rdama вне форума
Старый 18.06.2010, 17:55   #6
Епгений
Пользователь
 
Регистрация: 04.05.2010
Сообщений: 59
По умолчанию

rdama Ооо Огромное тебе спасибо чувак ты Гуру я бы так не смог бы!!! Конечно я знаю про If then я другой поисковик сделал на этом, ну что бы как у вас это ваще огого. Вы спасли мою дипломную работу!
Епгений вне форума
Старый 20.06.2010, 12:04   #7
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Вопрос решен. Тема может быть закрыта.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL-запрос OlehUA Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 31.05.2010 08:50
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) Машуля SQL, базы данных 4 06.05.2010 21:09
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi S_Yevgeniy Помощь студентам 1 27.10.2009 06:26
SQL-запрос oblachko БД в Delphi 6 26.06.2009 20:34
SQL запрос на основе другого SQL запрса... Timoxa БД в Delphi 1 07.01.2007 18:15