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