Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.08;
Скачать: CL | DM;

Вниз

Как изменить порядок отображения записей в DBGRID   Найти похожие ветки 

 
AFROLOV ©   (2002-07-16 15:22) [0]

Привет всем.
Задача такая: Как самому определять порядок следования записей при их отображении в DBGRID? Например если не устраивает обычная сортировка и требуется упорядочивать записи по своему усмотрению?


 
AlexGreG ©   (2002-07-16 15:34) [1]

варианты

1)Можно использовать RxMemoryTable, например..., или подобную компоненту. При открытии (open) набора данных (или рефреше (refresh)) ручками вставляем (insert), где нужно, или добавляем (append) записи. Чтобы определить место в таблице, куда нужно вставить запись (согласно твоему критерию), используй метод Locate, который есть у наборов данных.

2)Написать свою компоненту-"набор данных", которая будет удовлетворять твоим требованиям (или требованиям твоих пользователей)

В любом случае DBGrid работает с набором данных через DataSource


 
AFROLOV ©   (2002-07-16 15:41) [2]

Т.е если изменить порядок следования записей в DataSource порядок их отображения так же изменится?


 
AlexGreG ©   (2002-07-16 15:45) [3]

DataSource - это объединяющее звено, необходимое для того, чтобы из набора данных данные отображались в сетке (dbgrid)


 
Mike_Goblin ©   (2002-07-16 15:48) [4]

>Т.е если изменить порядок следования записей в DataSource порядок их отображения так же изменится?

В DataSet - если в нем меняешь порядок - меняется в DBGRID


 
AFROLOV ©   (2002-07-16 16:26) [5]

А как в DataSet изменить порядок следования записей? Например поменять 2 из местами.


 
sniknik ©   (2002-07-16 18:30) [6]

А как ты получаеш набор? если через Query компонент то достаточно в select поля в нужном порядке прописать.
ADODataSet1.CommandText:= "SELECT field2, field3, field1 FROM MyTable";
ADODataSet1.Open;
если из таблици то сам грид переопредели, двойной клик на гриде открывает редактор отображаемых полей. тасуй их там как хочеш.


 
Sergey13 ©   (2002-07-17 09:03) [7]

2sniknik © (16.07.02 18:30)
Вопрос был про записи, а не про поля.
2AFROLOV © (16.07.02 16:26)
Если изменение порядка записей подчиняется какому то хитрому, но правилу, то можно попытаться сделать это программно (либо при составлении запроса либо как написал AlexGreG © (16.07.02 15:34)). Если поменять надо просто так, по прихоти, то только ручками по схеме того же AlexGreG © (16.07.02 15:34). Кстати, а что за задача такая, где нужно записи менять местами. Может если напишешь для чего нужно - и ответить будет проще.


 
Anatoly Podgoretsky ©   (2002-07-17 09:23) [8]

AFROLOV © (16.07.02 16:26)
Жалко что в вопросе не фигурирует база, но подобное возможно только для некоторых десктопных баз, путем физического переписываня таблий и отказ от индексов.
Еще один вариант, отказ от dbGrid данные закачивать в StringGrid или другие подобные органы


 
Diana   (2002-07-17 14:35) [9]

1. Можно сделать ORDER BY в запросе
2. Если есть возможность, воспользоваться Grid-ом например из библиотеки DeveloperExpress, там много полезного реализовано


 
Desdechado ©   (2002-07-17 15:00) [10]

а можно использовать хранимые процедуры для таких вывертов ...



Страницы: 1 вся ветка

Текущий архив: 2002.08.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
8-24137
Deus
2002-03-28 16:12
2002.08.08
live 5.1


1-24052
^SANYA
2002-07-23 20:04
2002.08.08
Как выкинуть программу из списка программ (ctrl+alt+del)?


3-23900
Dmitrey
2002-07-17 12:28
2002.08.08
Сжатие и восстановление БД Access на Delphi


3-23871
Nonam
2002-07-16 14:06
2002.08.08
ODAC


1-24089
chips
2002-07-25 13:41
2002.08.08
как отключить клавиши