Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.013 c
11-1083854165
Рома
2004-05-06 18:36
2006.05.21
Локальный чат


15-1145856864
ilya39
2006-04-24 09:34
2006.05.21
Proxy


1-1144733950
tigra
2006-04-11 09:39
2006.05.21
Ширина колонок таблицы в Word


2-1146156377
Padre
2006-04-27 20:46
2006.05.21
прочитать 2 последние строчки текстового файлы


15-1146151613
DillerXX
2006-04-27 19:26
2006.05.21
Возможно ли слинковать Делфийский obj файл с С++





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский