Вниз
Скачать: CL | DM;

Как правильно сформировать SQL запрос   Найти похожие ветки 

← →
alkin   (2006-05-04 08:40) [0]

Как правильно сформировать SQL запрос
Делаю так:
//------------------------------------
  DataModule.FindQuery.SQL.Clear;
  DataModule.FindQuery.SQL.Add("SELECT *");
  DataModule.FindQuery.SQL.Add("FROM Base");
  DataModule.FindQuery.SQL.Add("WHERE Field1 LIKE :SearchWord");
  DataModule.FindQuery.Parameters.ParamByName("SearchWord").Value := "%"+SearchWord.Text+"%";
//------------------------------------
В результате получаю выборку строк из базы Base
В выборке все строки, где есть вхождения подстроки SearchWord в колонке Field1

А как изменить запрос, чтобы он искал (и находил) эту подстроку SearchWord в
нескольких колонках например (Field1, Field2, Field3)?


← →
Anatoly Podgoretsky ©   (2006-05-04 08:46) [1]

оператор OR


← →
alkin   (2006-05-04 09:20) [2]

Кажется получилось:
//------------------------------------
  DataModule.FindQuery.SQL.Clear;
  DataModule.FindQuery.SQL.Add("SELECT *");
  DataModule.FindQuery.SQL.Add("FROM Base");
  DataModule.FindQuery.SQL.Add("WHERE (Field1 LIKE :SearchWord) OR (Field2 LIKE :SearchWord2)");
  DataModule.FindQuery.Parameters.ParamByName("SearchWord").Value := "%"+SearchWord.Text+"%";
  DataModule.FindQuery.Parameters.ParamByName("SearchWord2").Value := "%"+SearchWord.Text+"%";
//------------------------------------
В результате получаю выборку строк из базы Base
В выборке все строки, где есть вхождения подстроки SearchWord в колонки Field1 и Field2
(Вот только переменных будет уже несколько)

Спасибо > Anatoly Podgoretsky


← →
Sergey13 ©   (2006-05-04 09:29) [3]

2 [2] alkin   (04.05.06 09:20)
>(Вот только переменных будет уже несколько)
Не факт. Сколько объявишь - столько и будет.


← →
ЮЮ ©   (2006-05-04 10:29) [4]

никто не мешает использовать один и тот же параметр в нескольких местах
WHERE (Field1 LIKE :SearchWord) OR (Field2 LIKE :SearchWord)

правда в Parameters будет два элемента, но тут и цикл можно использовать.

З.Ы. БД какая


← →
Sergey13 ©   (2006-05-04 10:31) [5]

2[4] ЮЮ ©   (04.05.06 10:29)
>правда в Parameters будет два элемента, но тут и цикл можно использовать.
Зачем цикл? При присвоении по имени значение присвоится всем одинаковым элементам.


← →
ЮЮ ©   (2006-05-04 10:38) [6]


> При присвоении по имени

Это как? ParamByName - это лишь один из нескольких экземпляров TParameter в коллекции TParameters.
Такой подход работал в TQuery.Params


← →
Sergey13 ©   (2006-05-04 10:43) [7]

2 [6] ЮЮ ©   (04.05.06 10:38)
> Такой подход работал в TQuery.Params
А тут видимо АДО. Не обратил внимания, сори.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.025 c
15-1146229465
antonn
2006-04-28 17:04
2006.05.21
нужно отладить форум на php на локальном компьютере.


2-1146929237
Keks
2006-05-06 19:27
2006.05.21
Флешка


4-1140732100
Sysanin
2006-02-24 01:01
2006.05.21
Загруженость ситемы


2-1146665445
Елизавета
2006-05-03 18:10
2006.05.21
Подскажите где взять иконки


2-1146653813
паша32
2006-05-03 14:56
2006.05.21
1) Как из DateTimePicker a "вырезать" номер месяца?




   Наверх