![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
КАК: Сортировка грида, не трогая источника данных. [D6, MSSQL]
BlackTiger © (2002-09-14 10:26:00)Везде сортируется слишком топорно - ловишь нажатие на заголовок, а потом в Query модифицируешь "ORDER BY" и делается Requery.
А вот у меня Query - результат навороченной хранимой процедуры, генерирующей crosstab, и каждый Requery выполняется от 30 секунд до 2-3 минут, в зависимости от установок.
Как сортировать ТОЛЬКО колонки грида, не трогая источник?
Может кто подскажет?
З.Ы.: Насколько я представляю - это что-то вроде операций с отключенным источником данных, но как это реализовать - не имею понятия.
Delirium (2002-09-14 14:03:00) [1]> sniknik
Про отключение: я просто показал, как это элементарно с ADO, действительно и сортировать, и отимизировать ("индексировать") можно "на коннекте".
sniknik (2002-09-14 13:51:00) [2]зачем нужны навороченные компоненты? самый простой способ
Delirium © (14.09.02 11:41)
ADOQuery1.Sort:="MyField1";
сортировка по столбцу на клиенте. или ты не Ado используеш?
(по моему и отключать ничего не надо все одно слиентский датасет отсортируется)
Lola (2002-09-14 13:30:00) [3]Только сейчас увидела тут же ветку: http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1031925073&n=1
Lola (2002-09-14 13:29:00) [4]Кажется в EhLib грид с сортировкой
kaif (2002-09-14 12:33:00) [5]Я слышал, что существуют навороченные grid-ы, имеющие возможность сортировки набора на стороне клиента (без перезапроса)
Dmitriy Polskoy (2002-09-14 11:45:00) [6]У меня индекс не работает. Не знаю почему. Меняю индекс - ни каких изменений в сортировке.
Delirium (2002-09-14 11:41:00) [7]Это легко сделать используя клиентский курсор ADO - ADOQuery1.CursorLocation:=clUseClient, у активной выборки откулючаем соединение с сервером ADOQuery1.Connection:=nil и сортируем как угодно: ADOQuery1.Sort:="MyField1 ASC, MyField2 DESC". Можно даже индексировать, правда реализация _RecordSet в Delphi делает Properties - readonly, но всегда можно "обмануть" компилятор: Variant(ADOQuery1.Recordset).Fields["MyField1"].Properties["Optimize"]:=True;
Polevi (2002-09-14 11:20:00) [8]индекс на клиенте пробовал ?