Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.04.2012, 14:49
Pumasin Pumasin вне форума
Прохожий
 
Регистрация: 13.04.2012
Сообщения: 8
Репутация: 10
По умолчанию DBgrid проблема с Поиском

Сделал поиск по базе данных DBgrid (БД а аксесе) путем ввода в edit'ы слова которое нужно найти. Столбцы по которым идет поиск называются "ПІБ" "Стать" "Вид роботи". По edit'у 1 и 2 поиск происходит нормально, все ищет и показывает в базе, пишу код на edit3 при поиске в нем выдает ошибку:





Ребята помогите исправить ошибку, не пойму в чем ее причина отказа работы 3 edit'а, код правильный, первые 2 на нем нормально ищут..
Код:
//ПОИСК //
procedure TForm3.Edit1Change(Sender: TObject);
begin
if (edit1.text<>'') then
begin
BD.Filter:='(ПІБ LIKE '''+edit1.Text+'%'')';
BD.Filtered:=true;

end
else
BD.Filtered:=false;

end;

procedure TForm3.Edit2Change(Sender: TObject);
begin
if (edit2.text<>'') then
begin
BD.Filter:='(Стать LIKE '''+edit2.Text+'%'')';
BD.Filtered:=true;

end
else
BD.Filtered:=false;
end;

procedure TForm3.Edit3Change(Sender: TObject);
begin
if (edit3.text<>'') then
begin
BD.Filter:='(Вид роботи LIKE '''+edit3.Text+'%'')';
BD.Filtered:=true;

end
else
BD.Filtered:=false;
end;
Админ: Пользуемся тегами для оформления кода!

Последний раз редактировалось Admin, 13.04.2012 в 14:52.
Ответить с цитированием
  #2  
Старый 13.04.2012, 16:33
Pumasin Pumasin вне форума
Прохожий
 
Регистрация: 13.04.2012
Сообщения: 8
Репутация: 10
По умолчанию

Может подскажите другой поиск по базе, нужно чтобы фильтр поиска оставлял совпадение по всем столбцам базы если они есть и выводил только их...
Ответить с цитированием
  #3  
Старый 16.04.2012, 22:33
Аватар для Klassenas
Klassenas Klassenas вне форума
Новичок
 
Регистрация: 25.05.2009
Адрес: Казахстан, Павлодар
Сообщения: 87
Версия Delphi: Rad Studio 2010
Репутация: 1570
По умолчанию

Знаю, в чём твой косяк, я по началу тоже так попадался.
Фильтр использует синтаксис SQL запроса.
Чтобы он правильно работал, имя поля должно представлять из себя одно целое. А оно у тебя с пробелом.
В результате для синтаксиса SQL оно предстаёт как два несвязанных между собой слова.
Просто возьми имя поля в квадратные скобки, и всё будет работать:
Код:
procedure TForm3.Edit3Change(Sender: TObject);
  begin
  if (edit3.text<>'') then
    begin
      BD.Filter:='([Вид роботи] LIKE '''+edit3.Text+'%'')';
      BD.Filtered:=true;
    end
  else
    BD.Filtered:=false;
end;
__________________
Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому
Ответить с цитированием
  #4  
Старый 18.04.2012, 18:40
Pumasin Pumasin вне форума
Прохожий
 
Регистрация: 13.04.2012
Сообщения: 8
Репутация: 10
По умолчанию

Большое спасибо за помощь, помогли скобки!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:48.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter