Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-71935
Basja
2003-09-02 15:16
2003.09.22
Тест кончился. про FTP клиенты


1-71661
AlexVM
2003-09-11 11:42
2003.09.22
Хранение форм в базе данных


7-71965
WarLord
2003-07-08 12:56
2003.09.22
Работа по COM-порту с торговыми весами


14-71921
Kost
2003-09-02 14:19
2003.09.22
Темы


14-71862
s
2003-08-31 10:47
2003.09.22
Как правильно сделать автозагрузку программы?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский