![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как изменить порядок отображения записей в DBGRID
AFROLOV © (2002-07-16 15:22:00)Привет всем.
Задача такая: Как самому определять порядок следования записей при их отображении в DBGRID? Например если не устраивает обычная сортировка и требуется упорядочивать записи по своему усмотрению?
Desdechado (2002-07-17 15:00:00) [1]а можно использовать хранимые процедуры для таких вывертов ...
Diana (2002-07-17 14:35:00) [2]1. Можно сделать ORDER BY в запросе
2. Если есть возможность, воспользоваться Grid-ом например из библиотеки DeveloperExpress, там много полезного реализовано
Anatoly Podgoretsky (2002-07-17 09:23:00) [3]AFROLOV © (16.07.02 16:26)
Жалко что в вопросе не фигурирует база, но подобное возможно только для некоторых десктопных баз, путем физического переписываня таблий и отказ от индексов.
Еще один вариант, отказ от dbGrid данные закачивать в StringGrid или другие подобные органы
Sergey13 (2002-07-17 09:03:00) [4]2sniknik © (16.07.02 18:30)
Вопрос был про записи, а не про поля.
2AFROLOV © (16.07.02 16:26)
Если изменение порядка записей подчиняется какому то хитрому, но правилу, то можно попытаться сделать это программно (либо при составлении запроса либо как написал AlexGreG © (16.07.02 15:34)). Если поменять надо просто так, по прихоти, то только ручками по схеме того же AlexGreG © (16.07.02 15:34). Кстати, а что за задача такая, где нужно записи менять местами. Может если напишешь для чего нужно - и ответить будет проще.
sniknik (2002-07-16 18:30:00) [5]А как ты получаеш набор? если через Query компонент то достаточно в select поля в нужном порядке прописать.
ADODataSet1.CommandText:= "SELECT field2, field3, field1 FROM MyTable";
ADODataSet1.Open;
если из таблици то сам грид переопредели, двойной клик на гриде открывает редактор отображаемых полей. тасуй их там как хочеш.
AFROLOV (2002-07-16 16:26:00) [6]А как в DataSet изменить порядок следования записей? Например поменять 2 из местами.
Mike_Goblin (2002-07-16 15:48:00) [7]>Т.е если изменить порядок следования записей в DataSource порядок их отображения так же изменится?
В DataSet - если в нем меняешь порядок - меняется в DBGRID
AlexGreG (2002-07-16 15:45:00) [8]DataSource - это объединяющее звено, необходимое для того, чтобы из набора данных данные отображались в сетке (dbgrid)
AFROLOV (2002-07-16 15:41:00) [9]Т.е если изменить порядок следования записей в DataSource порядок их отображения так же изменится?
AlexGreG (2002-07-16 15:34:00) [10]варианты
1)Можно использовать RxMemoryTable, например..., или подобную компоненту. При открытии (open) набора данных (или рефреше (refresh)) ручками вставляем (insert), где нужно, или добавляем (append) записи. Чтобы определить место в таблице, куда нужно вставить запись (согласно твоему критерию), используй метод Locate, который есть у наборов данных.
2)Написать свою компоненту-"набор данных", которая будет удовлетворять твоим требованиям (или требованиям твоих пользователей)
В любом случае DBGrid работает с набором данных через DataSource