Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
ВнизКак правильно сформировать 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 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c