Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > операция like в конструкции where


Автор: Eva1 4.4.2006, 18:20
Всем привет!

пишу запрос к БД MSAccess2000
Код

ADOQuery1.SQL.Add(select fio);
ADOQuery1.SQL.Add(from Address_Book);
ADOQuery1.SQL.Add(where fio like :f);
ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.text, true);
ADOQuery1.Parameters.ParamByName('f').value:=Edit1.Text;

в БД имеется запись 'Иванов Иван Иваныч', если в Edit1 записать 'Ив', то выводится пустая строка вместо, ожидаемой, 'Иванов Иван Иваныч'.

Кто подскажет в чем ошибка?

Автор: Vas 4.4.2006, 18:41
Код

ADOQuery1.SQL.Add(select fio);
ADOQuery1.SQL.Add(from Address_Book);
ADOQuery1.SQL.Add(where fio like :f);
ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.text, true);
ADOQuery1.Parameters.ParamByName('f').value:=Edit1.Text+'%';

% заменяет любые символы, если надо чтобы искалась строка включающая какой-то набор символов пишем с двух сторон знаки %, типа:
Код

ADOQuery1.SQL.Add(select fio);
ADOQuery1.SQL.Add(from Address_Book);
ADOQuery1.SQL.Add(where fio like :f);
ADOQuery1.Parameters.ParseSQL(ADOQuery1.SQL.text, true);
ADOQuery1.Parameters.ParamByName('f').value:='%'+Edit1.Text+'%';

ну и так далее

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)