Filtrowanie w dbgrid

WI
  • Rejestracja: dni
  • Ostatnio: dni
0

Witajcie.
Jak w komponencie dbgrid zrobic filtrowanie zeby wyswietlily sie pola zaczynajace sie np na t*.
Tabela ma jedna kolumne o identyfikatorze NAZWA.
Pozdrawiam i wiekie dzieki za kazde info.

Młody
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 418
0

Zamiast TTable użyj TQuery i zapytanie coś w rodzaju:

Kopiuj
  
with Query1.SQL do
  begin
    Close;
    Clear;
    Add('Select * from nazwa_tabeli where nazwa_pola like :wszystkie_na_t');
    ParamByName('wszystkie_na_t').AsString := 't%';
    Open;
 end;
b0bik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1114
0

Albo użyj filtrowania (właściwości Filter, Filtered, OnFilterRecord). Na krótką metę jest to wygodne i szybkie.

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
0

Z ta petla while sobie odpusc bo nie jest potrzebna jesli chcesz miec w query wszystkie wyniki (bo np wyk. to gdzie indziej) to mozesz sobie nalozyc filtr wtedy robisz to tak:

Do komponentu np w zeosach TZQuery (Nazwijmy je "qrZap") w opcji SQL dodajesz kod np taki:
select * from tabel1_docelowa a opcje filtered w object inspektorze ustawiasz na true a w filtr robisz nazwa_pola (like 't%') czy jak to tam w twojej bazie wyglada (ograniczenie do nazw zaczynajacych sie od T)

teraz dodajesz komponent TDataSource i w opcji DataSet wybierasz nasze qrZap

Nastepnie dodajesz w opcji DataSet swojego dbgrida powyzszego TDataSource i po klopocie ... pamietaj ze DBGrid jest to kontrolka ktora glownie wyswietla to co dane query poobiera z bazy i w wiekszosci przypadkow nie nalezy dzialac na gridzie

b0bik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1114
0

Ja tam żadnej pętli while nie widzę, a o filtrowaniu napisałem 3 godziny wcześniej.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.