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

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

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

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

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

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

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
SQLite, MS Acces, FireBird
Мне необходима такая база, чтобы не требовала установки, если брать MS Acces, то необходимо ее для начала поставить. Прогу удобнее перемещать без всяких хвостов, то есть не тащить при необходимости базу за собой. Прога определяет, если файла с базой нет в каталоге с прогой, то она создает новый. ClientDataSet идеально для всего этого подходит.

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Вы лучше скажите, с сортировкой разобрались? Всё работает?
Да, все работает, спасибо! Но есть один нюанс, например, если в одном поле все выравнено по убыванию, то в другом поле нужно кликать дважды, чтобы отсортировало в другом направлении.

Код:
if ClientDataSet1.FieldByName(Column.FieldName).Tag=0 then begin
  ClientDataSet1.addindex(Column.FieldName + '_DESC', Column.FieldName,[ixDescending]);
  ClientDataSet1.IndexName := Column.FieldName + '_DESC';
  ClientDataSet1.FieldByName(Column.FieldName).Tag := 1;
end else begin
  ClientDataSet1.IndexFieldNames:=Column.FieldName;
  ClientDataSet1.FieldByName(Column.FieldName).Tag := 0;
end;

Последний раз редактировалось bilibian; 26.08.2014 в 16:32.
bilibian вне форума Ответить с цитированием
Старый 26.08.2014, 15:10   #12
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

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

Но есть один нюанс, например, если в одном поле все выравнено по убыванию, то в другом поле нужно кликать дважды, чтобы отсортировало в другом направлении.
Сделал так, ошибка

Код:
procedure TForm4.DBGrid1TitleClick(Column: TColumn);
  var
    I:Integer;
begin
  with ClientDataSet1 do
    if FieldByName(Column.FieldName).Tag=0 then
     begin
      addindex(Column.FieldName + '_DESC', Column.FieldName,[ixDescending]);
      IndexName := Column.FieldName + '_DESC';

      for I := 0 to FieldCount-1 do
        FieldByName(Column.FieldName[I]).Tag := 1;
     end
    else
     begin
      IndexFieldNames:=Column.FieldName;
      for I := 0 to FieldCount-1 do
        FieldByName(Column.FieldName[I]).Tag := 0;
     end;
end;
bilibian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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