Sortowanie pobranych rekordów w DBGrid

0

Witam!

Może ktoś z Was będzie wiedział jak rozwiązać następujący problem:

Pobieram dane z postgresa (D7 + komponenty ZEOS) i ładuję do DBGrida. Po kliknięciu kolumny np. imie, sortuję wynik rosnąco lub malejąco. Za każdym razem wywołuję nowe zapytanie odpowiednio ustalając sortowanie. Genaralnie działa szybko przy małej ilości rekordów, ale przy pobieraniu np. danych zawierających około 100 tyś rekordów cała operacja trwa - dane pobirane przez internet. W ramach poprawy szybkosci działania chciałbym pobrac dane przy pierwszym zapytaniu, a po kliknięciu odpowiedniej kolmny sortować dane już pobrane.

Z góry dziękuję za odpowiedzi.

pozdrawiam

janusz

</url>
0

a powiedz mi, ale tak szczerze, kto normalny przejrzy "danych zawierających około 100 tyś rekordów"?? a jeszcze lepiej komu są one potrzebne?? Zmuś usera aby zawęził kryterium wyszukiwania - 1000 rekordów to i tak już za dużo, szczególnie, że to ma działac przez net.

Jeśli jednak się uparłeś to możesz to zrobić tak, że pobierasz dane raz, ładujesz je do tabeli w pamięci (np. kbmmemtable) a ona ma już coś takiego jak kbmMemTable.SortOn(NazwaKolumny, [flagi]);

0

dziękuję,

nie chodziło mi dokładnie o pobieranie 100 tyś rekordów - bardziej żeby zoobrazować problem, ale pobranie przez internet przy każdym kliknięciu jest już problemem :).

Spróbuję tak zrobić.

pozdrawiam

janusz

0

to jeszcze taka mała sugestia - jeśli Twój program ma działać przez inet to może zainteresuj się komponentem TClientDataSet (standardowo jest w Delphi) - potrafi on ściągnąć dane i trzymając je w pamięci robić na nich różne rzeczy (np. update, insert, delete) a następnie wysłać wszystkie zmiany na raz. Minimalizuje to ruch w sieci i ilość przesłanych danych

1 użytkowników online, w tym zalogowanych: 0, gości: 1