Форум: "Базы";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
ВнизСортировка в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c