Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2010, 14:42   #1
rombler69
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 25
По умолчанию Сортировка в DBGridEh

Есть программа, работающая с базой access. В DBGridEh выводятся результаты поиска фамилий(like),
для примера:
Петрова
Петров
Петровичев
Петров
Хотелось бы, чтобы при нажатии на заголовок колонки, фамилии сортировались

Как выходит:
В свойствах нужной колонки DBGridEh1.Columns[2].Title.TitleButton = true, SotrMarker=smdowneh
В событии грида OnTitleBtnClick пишу
Код:
procedure TForm1.DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;
  Column: TColumnEh);
begin
     DBGridEh1.Columns[2].Title.SortMarker:=smdownEh;
     ADOQuery1.Active:=false;
     ADOQuery1.SQL.Clear;
     ADOQuery1.SQL.Add('SELECT *');
     ADOQuery1.SQL.Add('FROM Table');
     ADOQuery1.SQL.Add('ORDER BY '+ DBGridEh1.Columns[2].FieldName);
     ADOQuery1.Active:=true;
end;
При нажатии на колонку, список сортируется, но выводит все записи, что есть в базе, подскажите, как сделать, чтобы после поиска сортировались только найденные записи.
rombler69 вне форума Ответить с цитированием
Старый 09.02.2010, 14:47   #2
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

ну так правильно, у вас же запрос так и записан
Код:
SELECT * FROM Table 
ORDER BY + DBGridEh1.Columns[2].FieldName;
а LIKE то нету Поэтому у вас все записи и выводит
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 09.02.2010, 15:30   #3
rombler69
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 25
По умолчанию

Подскажите тогда пожалуйста, как добавить LIKE в эту строку ?

Последний раз редактировалось rombler69; 09.02.2010 в 15:31. Причина: Дополнил вопрос
rombler69 вне форума Ответить с цитированием
Старый 09.02.2010, 15:49   #4
quit
Я есть!
Форумчанин
 
Аватар для quit
 
Регистрация: 17.02.2008
Сообщений: 318
По умолчанию

Код:
ADOQuery1.SQL.Add('SELECT *');
ADOQuery1.SQL.Add('FROM Table');
ADOQuery1.SQL.Add('WHERE surname LIKE ' + Edit1.Text);//откуда берете условие, например из Edit 
ADOQuery1.SQL.Add('ORDER BY '+ DBGridEh1.Columns[2].FieldName);
©Учиться, учиться и еще раз учиться!
quit вне форума Ответить с цитированием
Старый 09.02.2010, 15:55   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
     ADOQuery1.SQL.Add('SELECT *');
     ADOQuery1.SQL.Add('FROM Table');
     ADOQuery1.SQL.Add('WHERE '+ DBGridEh1.Columns[2].FieldName+' LIKE '+QuotedStr('Петр')+'%');
     ADOQuery1.SQL.Add('ORDER BY '+ DBGridEh1.Columns[2].FieldName);
Типа такого.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2010, 16:04   #6
rombler69
Пользователь
 
Регистрация: 09.02.2009
Сообщений: 25
По умолчанию

quit, Stilet спсибо большое, а я все пытался в одну строку разместить
Вам ++
rombler69 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка в DbGridEh Alexeyss БД в Delphi 4 21.11.2009 11:25
DBGridEh фильтрация big_big Общие вопросы Delphi 0 04.07.2009 15:33
Ehlib, DBGridEh Rustem.xxx Компоненты Delphi 2 27.05.2008 14:41
автопоиск в DBGridEh furstenberg Компоненты Delphi 4 18.02.2008 12:49
Выкрутасы с DBGridEh Killer_djon БД в Delphi 6 12.11.2007 11:08