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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2014, 14:04   #1
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию Сортировка столбца в алфавитном порядке

Добрый день!
Подскажите, пожалуйста, как сортировать данные в таблице при нажатии на заголовок столбца?
При первом нажатии на заголовок должно отсортироваться в алфавитном порядке от А к Я.
При втором нажатии на заголовок должно отсортироваться от Я к А.
До этого делала так. На событие OnTitleClick писала следующий код:
Код:
Table1.IndexFieldNames:= Column.FieldName;
Сортирует только в одном направлении от А к Я.
И еще, как сделать также для Adoquery?

Последний раз редактировалось Anastasia12.02.; 11.06.2014 в 14:10.
Anastasia12.02. вне форума Ответить с цитированием
Старый 16.06.2014, 10:00   #2
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию

Никто что ли не знает????
Anastasia12.02. вне форума Ответить с цитированием
Старый 16.06.2014, 10:13   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

для начала попробуйте такой код:
Код:
  Table1.IndexFieldNames:= Column.FieldName+' DESC';


взято отсюда:
Цитата:
Код:
Сортировка в обе стороны при повторном нажатии на титл.
procedure TForml.DBGrid1TitleClick(Column: TColumn);
var
 ss : string;
begin
  if adoquery1.FieldByName(Column.FieldName).Tag=0 then
   begin
    ss := ' ASC';
    adoquery1.FieldByName(Column.FieldName).Tag := 1;
   end
  else
   begin
    ss := ' DESC';
    adoquery1.FieldByName(Column.FieldName).Tag := 0;
   end; 
 adoquery1.Sort:=Column.FieldName + ss; 
end;

Цитата:
И еще, как сделать также для Adoquery?
Точно так же. Но ещё в ADOQuery можно в запросе прописывать ORDER BY ..
это намного эффективней (сортировка осуществляется СУБД), но потребует переоткрытия набора данных со всеми вытекающими отсюда последствиями...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2014, 11:10   #4
Anastasia12.02.
Пользователь
 
Регистрация: 18.05.2014
Сообщений: 13
По умолчанию

Serge_Bliznykov, спасибо! Выручили!
Anastasia12.02. вне форума Ответить с цитированием
Старый 16.06.2014, 14:46   #5
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию

взято отсюда:

А у меня почему то выходит ошибка ADOQuery1: field 'Avtor ' not found
Valentina10121991 вне форума Ответить с цитированием
Старый 16.06.2014, 15:20   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Валентина, у нас принято для новых вопросов создавать новую тему!

Цитата:
Сообщение от Valentina10121991
А у меня почему то выходит ошибка ADOQuery1: field 'Avtor ' not found
перевожу: "поле Avtor не найдено"

убедитесь, что указанное Вами поле есть в датасете.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2014, 15:26   #7
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение

убедитесь, что указанное Вами поле есть в датасете.
Но когда я делала так:
Код:
ADOTable1_books.IndexFieldNames:=Column.FieldName;
все работало
Valentina10121991 вне форума Ответить с цитированием
Старый 17.06.2014, 08:53   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Valentina10121991 Посмотреть сообщение
Но когда я делала так:
Код:
ADOTable1_books.IndexFieldNames:=Column.FieldName;
все работало
ну, ответ очевиден.
значит в датасете ADOTable1_books есть поле Avtor
а в датасете в ADOQuery1 нет поля Avtor

проверяйте, с какой таблицой связан ADOTable1_books и какой запрос в ADOQuery1
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.06.2014, 16:53   #9
Valentina10121991
Пользователь
 
Регистрация: 30.03.2011
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение

проверяйте, с какой таблицой связан ADOTable1_books и какой запрос в ADOQuery1
Здесь тоже уже разобралась
Valentina10121991 вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка в алфавитном порядке (Си) Creder Общие вопросы C/C++ 0 19.12.2013 17:26
сортировка слов в алфавитном порядке CppForYou Общие вопросы C/C++ 0 29.05.2013 16:16
Сортировка слов в алфавитном порядке maxwel6064 Общие вопросы C/C++ 0 14.02.2013 18:29
сортировка в алфавитном порядке stranger_508 Помощь студентам 0 24.10.2009 14:54
Сортировка в алфавитном порядке [MI_nor] Общие вопросы C/C++ 14 17.03.2009 23:12