DBGrid i sortowanie - proszę o pomoc

0

cześć,
nie mogę sobie poradzić z sortowaniem danych z DBGrid.
Jest tak: mam ComboBox, w którym można wybrać kolumnę, po której ma się odbyć sortowanie(np. NazwaFirmy,Tel, itp), mam DBGrid'a, w któym wyświetlam dane z bd (Paradox) za pomocą TTable, teraz jak napisać procedurkę sortującą, którą można byłoby podczepić pod te ComboBox? korzystam z BDE.

gg:2379556

0

Jeśli używałbyś TQuery, mógłbyś zastosować SQL-owe ORDER BY.
Ale też trzeba powiedzieć, że niekiedy zestaw danych zwrócony przez SELECT+ORDER BY jest tylko do odczytu (np. order by na nieindeksowanych polach...; w Helpie jest dokładne info).

W przypdaku TTable, ja to robię z reguły tak:

Dla każdego pola, wg którego chcę sortować dodaję do tabeli index (jeden rosnący i jeden malejący).
Przy kliknięciu przez użytkownika na kolumnie DBGrid-a pobieram nazwę pola, którego wartości są wyświetlane w tej kolumnie.
Zmieniam jakąś globalną zmienną logiczną (np. IsAscending := not IsAscending)
Teraz tylko wybieram dla tabeli odpowiedni index (Table1.IndexName := 'nazwa_indexu') i sortowanie wykonuje się automatycznie.

0

no właśnie próbowałem coś z Query:

with Query1 do
begin
   SQL.Clear;
   Close;
   SQL.Add('select * from firmy.db order by ');
   SQL.Add(cbSortuj.Text);
   Open;
end;
gridFirmy.setfocus;

ale nie działa, a ja nie jestem zbyt dobry w robieniu DB pod delphi. prawdę mówiąc wszystko próbuję na intuicję.

Miałbym wielką prośbę gdybyś mógł mi podać pełny kod tej metody z TTable, którą mi opisałeś ;p

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