Главная страница
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.049 c
3-71565
bernard
2003-08-28 16:10
2003.09.22
Delphi 7, Insert записи в подчиненную таблицу Аccess, через ADO


3-71545
AlexWeb
2003-08-27 13:11
2003.09.22
Как обновить данные в TIBQuery или TIBDataSet?


14-71948
den_zab
2003-09-02 14:59
2003.09.22
TQuery и SQLserver2000


3-71496
Deniz
2003-08-29 07:46
2003.09.22
ADO + Parameters ... Null


1-71727
labanga
2003-09-10 14:28
2003.09.22
Как написать маску для float