![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
||||
|
||||
|
Доброго времени суток!
Ребят, подскажите, пожалуйста, как запрос переделать, имеется примерно следующее: Код:
Select * from table1 where (((pole1)=:pole)) в таком случае, скажем, если параметр pole=Иван, то найдет только те записи, значение в указанном поле которого='Иван' или 'иван', а надо, чтобы выводилось 'Иванов', 'Иван Петров' и т.п. Знаю, что можно делать типа такого: Код:
Select * from table1 where (pole1 like 'Иван%' ) Но нужно именно с параметром, чтоб для других имен/фамилий тоже подходило... Подскажите, пожалуйста, как ![]() |
|
#2
|
||||
|
||||
|
Код:
begin
Query1.DatabaseName:='DBDEMOS';
Query1.SQL.Text:='select * from country.db where capital like :param1';
Query1.Prepare;
Query1.ParamByName('param1').AsString:='M%';
Query1.Open;
end; |
|
#3
|
||||
|
||||
|
Код:
Query1.ParamByName('param1').AsString:='M%';а разве в этом случае выведется не все, что начинается с M? |
|
#4
|
||||
|
||||
|
ну напиши вместо "М%" "Иван%" и получишь
Цитата:
|
|
#5
|
||||
|
||||
|
2 Страдалецъ:
Гениальное - просто ... ^^^ спасибо огромное, даже код сильно менять не пришлось! ![]() |
|
#6
|
|||
|
|||
|
Select * from table1 where (((pole1)=:рole))
проблему можно решить еще так Код:
SQL.Text:='Select * from table1 where (pole1 STARTING WITH '':рole'')' и это равносильно :рole+'%' но не все версии SQL этот оператор поддерживают. |
|
#7
|
||||
|
||||
|
Ну и добавляйте просто к параметру %:
Код:
AdoQuery1.Parameters.ParamValues['Pole1'] := Edit1.Text + '%'; |