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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2014, 09:46   #1
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию ClientDataSet сортировка

Привет!

Чтобы сортировать по возрастанию делаю так:

Код:
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
  ClientDataSet1.IndexFieldNames:=Column.FieldName;
end;
А как сортировать в обратном направлении?
bilibian вне форума Ответить с цитированием
Старый 26.08.2014, 10:02   #2
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,755
По умолчанию

Имя поля задом наперед напиши.
Vapaamies вне форума Ответить с цитированием
Старый 26.08.2014, 10:13   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

к имени поля допишите ключевое слово DESC

Учтите, что важен регистр!

на форуме было обсуждение. вот, например - тыц
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.08.2014, 10:23   #4
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
к имени поля допишите ключевое слово DESC

Учтите, что важен регистр!

на форуме было обсуждение. вот, например - тыц
Да, я видел это обсуждение, но при использовании кода:

Код:
ClientDataSet1.IndexFieldNames:=Column.FieldName+' DESC';
Кликая на заголовок поля, выскакивает ошибка not found
bilibian вне форума Ответить с цитированием
Старый 26.08.2014, 10:53   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Для ClientDataSet это не прокатит.

Динамически
http://edn.embarcadero.com/article/29056

Можно и в design-time индексов насоздавать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 26.08.2014 в 11:00.
Аватар вне форума Ответить с цитированием
Старый 26.08.2014, 11:00   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

а так?
Код:
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
  ClientDataSet1.addindex(Column.FieldName + '_DESC', Column.FieldName,[ixDescending]);
  ClientDataSet1.IndexName := Column.FieldName + '_DESC';
end;

p.s. отказывайтесь Вы от своего TClientDataSet - это же не настощий датасет, так - пародия!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.08.2014, 11:04   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Серж, это зря. Эта пародия очень мощная штука. Для трехзвенки как по мне вообще не заменимая. И очень полезная для временных таблиц в памяти
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.08.2014, 11:13   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Серж, это зря. Эта пародия очень мощная штука. Для трехзвенки как по мне вообще не заменимая. И очень полезная для временных таблиц в памяти
Так то так, но мне кажется, что использовать ClientDataSet в качестве замены БД (я же понимаю, что TC именно БД и организовал) не очень продуктивно.
Не под это данный датасет заточен!

впрочем, спорить не буду, возможно, что я и заблуждаюсь!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.08.2014, 13:17   #9
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
p.s. отказывайтесь Вы от своего TClientDataSet - это же не настощий датасет, так - пародия!
До этого у меня вместо БД был блокнот, ClientDataSet все же лучше блокнота
bilibian вне форума Ответить с цитированием
Старый 26.08.2014, 13:45   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
До этого у меня вместо БД был блокнот, ClientDataSet все же лучше блокнота
это однозначно!!!

я про то, что если бы Вы сделали свой проект с помощью СУБД (SQLite, MS Acces, FireBird и т.д. и т.п.) было бы не хуже.

Но если идёт о сравнении текстового файла (блокнота) и БД на основе ClientDataSet - то я, разумеется, за CDS!


Вы лучше скажите, с сортировкой разобрались? Всё работает?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ClientDataSet Janger Общие вопросы Delphi 1 24.07.2014 05:28
сортировка индексами в Clientdataset iliili БД в Delphi 2 08.05.2011 20:41
clientdataset iliili БД в Delphi 1 21.03.2011 18:57
Clientdataset. D.O.G БД в Delphi 5 05.10.2010 13:40
clientdataset slimvv Помощь студентам 1 24.08.2009 17:21