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

Вниз

Сортировка в TQuery   Найти похожие ветки 

 
AndreyAs   (2003-09-01 13:11) [0]

Уважаемые мастера,
есть Query1 - экземпляр класса TQuery,
который вытаскивает на клиента из базы значительный объем данных.

Отфильтровать выборку по какому-либо критерию я могу при помощи свойств Filter и Filtered, а вот как организовать сортировку по какому-либо из полей, не делая новый запрос?


 
Соловьев ©   (2003-09-01 13:12) [1]

select *
from table
order by field1


 
AndreyAs   (2003-09-01 13:18) [2]

Я же говорю: не делая новый запрос!
Допустим, первоначально выборка отсортирована по field1.
Если я хочу отсортировать по field2, то нужно переписать SQL и снова получить данный.
Filter фильтрует данные на клиентской стороне. Можно ли отсортировать данные на клиентской стороне?
Ведь в итоге я получу ТЕ ЖЕ САМЫЕ записи просто в другом порядке. Зачем снова обращаться на сервер?


 
Nikolay M. ©   (2003-09-01 13:22) [3]

TClientDataSet, RX-овые компоненты-таблицы в памяти.


 
Соловьев ©   (2003-09-01 13:24) [4]

ClientDataSet


 
AndreyAs   (2003-09-01 13:25) [5]

А через TQuery никак нельзя? Почему он фильтровать может, а сортировать нет?


 
DenK_vrtz ©   (2003-09-01 13:26) [6]

Можно через TTable


 
AndreyAs   (2003-09-01 15:19) [7]

ClientDataSet - это похоже то, что мне нужно, спасибо.

Тогда у меня получается связка из минимум трех компонентов: Query, ClientDataSet, DataSetProvider (+ DataSource, если понадобится). Правильно?


 
Nikolay M. ©   (2003-09-01 15:51) [8]

Query -> DataSetProvider -> ClientDataSet -> DataSource (если понадобится)


 
asafr   (2003-09-01 17:26) [9]

А вы уверены, что ClientDataSet каждый раз не делает новый запрос? Я нет....


 
Nikolay M. ©   (2003-09-01 17:29) [10]


> А вы уверены, что ClientDataSet каждый раз не делает новый
> запрос? Я нет....

А я - да.
Хотя, можно сделать и так, что он хоть каждую секунду будет рефрешиться - это уж от рук зависит...


 
AndreyAs   (2003-09-01 20:08) [11]

А что такого особенного надо сделать, чтобы он не рефрешился каждую секунду?

По идее я Query1.ExexSQL все один раз делаю.


 
Nikolay M. ©   (2003-09-02 09:58) [12]


> А что такого особенного надо сделать, чтобы он не рефрешился
> каждую секунду?

Это был сарказм :)
А сделать можно так:

procedure Timer1.OnTimer (Sender: TObject);
begin
Query1.Active := False;
Query1.Active := True;
end;


;))


> По идее я Query1.ExexSQL все один раз делаю.

А почему ExecSQL? Если запрос на выборку данных, а не на изменение?



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
14-71960
Ketmar
2003-08-31 04:13
2003.09.22
стихи Ирины Серотюк


3-71531
sss
2003-08-31 07:26
2003.09.22
Get Database Names


14-71825
jack128
2003-09-02 10:38
2003.09.22
Именинники 2 сентября


8-71770
WInAPi Lamer
2003-05-19 13:40
2003.09.22
DelpiX problemmmmm in fullscreen


1-71589
Dragoon
2003-09-09 23:11
2003.09.22
Как записывать в файл строки не по порядку?