Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка в 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


Наверх

Титульная страница Поиск, карта сайта Написать письмо