Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка в TClientDataSet [D5]


serg128 ©   (2004-08-03 09:49:00) 

Народ, подскажите, как можно сделать сортировку данных в TClientDataSet (без участия SQL)? Если можно - кусок кода. Пасиба.


serg128   (2004-08-03 17:35:00) [1]

Проскролил -> непомогает :(


Nikolay M.   (2004-08-03 17:21:00) [2]


> Romkin ©   (03.08.04 10:59) [4]
> Nikolay M. ©  (03.08.04 10:55) [3] Телепат, да?

Ага :)


> Если мне память не изменяет

Изменяет :(


> есть такой код (по щелчку на заголовке), но он иногда работает
> не корректно (появляются левые записи).

На первый взгляд все правильно. Может, DBGrid остается неперерисованным? Проскролль его вверх-вниз.


serg128   (2004-08-03 17:03:00) [3]

Ну помогите ж блин!!!!


serg128   (2004-08-03 11:17:00) [4]

У меня есть такой код (по щелчку на заголовке), но он иногда работает не корректно (появляются левые записи). Подскажите, где ошибка.

   if((ioCur!=smNone) && (dynamic_cast(DBG->DataSource->DataSet)->IndexName != ""))
     dynamic_cast(DBG->DataSource->DataSet)->DeleteIndex(dynamic_cast(DBG->DataSource->Data Set)->IndexName);
   switch (ioCur)
   {
     case smUp:
       dynamic_cast(DBG->DataSource->DataSet)->AddIndex(Field->FullName, Field->FullName, TIndexOptions()DataSet)->IndexName = Field->FullName;
       SortStr = Field->FullName;
       ioCur = smDown;
       break;
     case smDown:
       if(ioCur!=smNone && dynamic_cast(DBG->DataSource->DataSet)->IndexName!="")
         dynamic_cast(DBG->DataSource->DataSet)->DeleteIndex(dynamic_cast(DBG->DataSource->Data Set)->IndexName);
       dynamic_cast(DBG->DataSource->DataSet)->IndexName="";
       SortStr = Field->FullName;
       ioCur = smNone;
       break;
     case smNone:
       dynamic_cast(DBG->DataSource->DataSet)->AddIndex(Field->FullName, Field->FullName, TIndexOptions(), "", "", 0);
       dynamic_cast(DBG->DataSource->DataSet)->IndexName = Field->FullName;
       SortStr = Field->FullName;
       ioCur = smUp;
       break;
   }


serg128   (2004-08-03 11:14:00) [5]

> Romkin

там нету сортировки


Romkin   (2004-08-03 10:59:00) [6]

Nikolay M. ©  (03.08.04 10:55) [3] Телепат, да?
http://rsdn.ru/article/db/midas.xml
Если мне память не изменяет, то в клиенте для этой статьи я сделал сортировку при нажатии на заголовок...


Nikolay M.   (2004-08-03 10:55:00) [7]


> Romkin ©   (03.08.04 10:20) [2]
> Какой код?!

Он хочет по клику на Title DBGrid-a DataSet сортировать, имхо :)
Так что ему это программно нужно :)


Romkin   (2004-08-03 10:20:00) [8]

Какой код?! IndexFieldNames - через ; без пробелов вписать имена полей. и все.


Nikolay M.   (2004-08-03 10:03:00) [9]

F1 по TClientDataSet.IndexDefs, например.


Наверх

Титульная страница Поиск, карта сайта Написать письмо