Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Вниз

Как изменить порядок отображения записей в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
1-24079
U-Rustam
2002-07-26 13:17
2002.08.08
Перевод из Delphi 3 в Delphi 5


1-24080
Nox
2002-07-26 13:53
2002.08.08
Люди, как по-примеру back oriffice копаться в чужом компе...


1-24081
URustam
2002-07-26 13:57
2002.08.08
Название компонента.


4-24275
Baz
2002-05-31 10:50
2002.08.08
Как правильно обрабатывать сообщение WM_PAINT?


1-24010
anod
2002-07-28 16:32
2002.08.08
TTrackBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский