![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как сортировать результаты запроса? [D6]
AFrolov © (2002-09-30 11:24:00)Вопрос наверно уже встречался, но все же:
С помощью запроса получается набор данных, которые надо показывать пользователю по разному отсортированными (в зависимости от того по каким колонкам пользователь эту сортировку выбрал). Как можно изменить эту сортировку не выполняя повторно SQL - запрос (т.к. он длится довольно долго, а все необходимые данные были уже до этого получены). Может есть стандартные компоненты которые это делают?
Заранее спасибо.
AFrolov (2002-09-30 14:37:00) [1]Про то и вопрос был.
> BlackTiger (30.09.02 14:20)
Огромное спасибо.
3JIA9I CyKA (2002-09-30 14:28:00) [2]8)
Prooksius (2002-09-30 14:27:00) [3]FIBPlus - там есть процедуры такие:
procedure Sort(DataSet: TFIBCustomDataSet; aFields: array of const; Ordering: array of Boolean);
procedure FastSort(DataSet: TFIBCustomDataSet; FieldNo: Integer; Ordering: Boolean);
сортируют без переоткрытия результаты уже открытого запроса.
BlackTiger (2002-09-30 14:20:00) [4]Для бродящих по граблям или если надо быстро :-) :
Query1.Active := true; //можно опустить
Query1.Sort := "Field1 ASC, Field5 DESC";
Твоя задача - подставить название полей.
Либо используй EhLib (тут пролетала ссылка), там в примере все понятно.
Никакого обновления не происходит - сортируются только уже выбранные данные.
Кулюкин Олег (2002-09-30 12:49:00) [5]2 AFrolov ©
1. Используйте TClientDataSet, он позволяет сортировать данные (в т.ч. по нескольким столбцам). Для отображения используйте RxDBGrid. Он умеет рисовать стрелки в заголокках.
2. Напишите свой класс, который будет хранить данные, и свой список этих классов. Отображать данные придется в ListView в виртуальном режиме.
Сортировать ручками (например доработанным методом QuickSort).
AFrolov (2002-09-30 12:39:00) [6]Самое неприятное, что до меня это проделало уже много людей. Опять придется заниматься изобретением велосипеда. :-(.
3JIA9I CyKA (2002-09-30 12:34:00) [7]Тут уже не совет нужен, а фантазия. Придумай кучу вариантов; исключи неприемлемые; выбери самый клёвый. 8)
AFrolov (2002-09-30 12:31:00) [8]А с помощью чего это лучше сделать?
3JIA9I CyKA (2002-09-30 12:27:00) [9]Получив данные - сложи их локально, и сортируй сколько угодно.
Я бы так сделал.
AFrolov (2002-09-30 12:22:00) [10]Я бы предпочел ограничится только сортировкой, всей остальной крутизны мне пока не надо.
3JIA9I CyKA (2002-09-30 12:21:00) [11]Он их стоит.
AFrolov (2002-09-30 11:56:00) [12]
> 3JIA9I CyKA © (30.09.02 11:33)
> ExpressQuantumGrid
Клевый компонент, правда только за бабки и за приличные :-((
Desdechado (2002-09-30 11:35:00) [13]попробуй в StringGrid или ListBox (многоколоночный режим)
3JIA9I CyKA (2002-09-30 11:33:00) [14]ExpressQuantumGrid