![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сортировка в TQuery [D5, D6, D7, DBISAM]
AndreyAs © (2003-09-01 13:11:00)
Уважаемые мастера,
есть Query1 - экземпляр класса TQuery,
который вытаскивает на клиента из базы значительный объем данных.
Отфильтровать выборку по какому-либо критерию я могу при помощи свойств Filter и Filtered, а вот как организовать сортировку по какому-либо из полей, не делая новый запрос?
Nikolay M. (2003-09-02 09:58:00) [1]
> А что такого особенного надо сделать, чтобы он не рефрешился
> каждую секунду?
Это был сарказм :)
А сделать можно так:
procedure Timer1.OnTimer (Sender: TObject);
begin
Query1.Active := False;
Query1.Active := True;
end;
;))
> По идее я Query1.ExexSQL все один раз делаю.
А почему ExecSQL? Если запрос на выборку данных, а не на изменение?
AndreyAs (2003-09-01 20:08:00) [2]
А что такого особенного надо сделать, чтобы он не рефрешился каждую секунду?
По идее я Query1.ExexSQL все один раз делаю.
Nikolay M. (2003-09-01 17:29:00) [3]
> А вы уверены, что ClientDataSet каждый раз не делает новый
> запрос? Я нет....
А я - да.
Хотя, можно сделать и так, что он хоть каждую секунду будет рефрешиться - это уж от рук зависит...
asafr (2003-09-01 17:26:00) [4]
А вы уверены, что ClientDataSet каждый раз не делает новый запрос? Я нет....
Nikolay M. (2003-09-01 15:51:00) [5]
Query -> DataSetProvider -> ClientDataSet -> DataSource (если понадобится)
AndreyAs (2003-09-01 15:19:00) [6]
ClientDataSet - это похоже то, что мне нужно, спасибо.
Тогда у меня получается связка из минимум трех компонентов: Query, ClientDataSet, DataSetProvider (+ DataSource, если понадобится). Правильно?
DenK_vrtz (2003-09-01 13:26:00) [7]
Можно через TTable
AndreyAs (2003-09-01 13:25:00) [8]
А через TQuery никак нельзя? Почему он фильтровать может, а сортировать нет?
Соловьев (2003-09-01 13:24:00) [9]
ClientDataSet
Nikolay M. (2003-09-01 13:22:00) [10]
TClientDataSet, RX-овые компоненты-таблицы в памяти.
AndreyAs (2003-09-01 13:18:00) [11]
Я же говорю: не делая новый запрос!
Допустим, первоначально выборка отсортирована по field1.
Если я хочу отсортировать по field2, то нужно переписать SQL и снова получить данный.
Filter фильтрует данные на клиентской стороне. Можно ли отсортировать данные на клиентской стороне?
Ведь в итоге я получу ТЕ ЖЕ САМЫЕ записи просто в другом порядке. Зачем снова обращаться на сервер?
Соловьев (2003-09-01 13:12:00) [12]
select *
from table
order by field1