DBGRID i ilosc wyswietlanych rekordow

DBGRID i ilosc wyswietlanych rekordow
arturfir
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam.

Czy ktos moze mi powiedziec w jaki sposob sprawdzic ilosc wyswietlanych rekordow w komponencie DBGRID, bez wgledu na typ bazy ktora wyswietla.

Jest wiele informacji na temat DBGRID'a ale tego znalezc nie moge.

Dzieki.

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

Jeśli DBGrida masz połączonego przez jakiegoś DataSource to wystarczy :

Kopiuj
Label1.Caption := DataSource.DataSet.RecordCount
arturfir
  • Rejestracja: dni
  • Ostatnio: dni
0

Niestety nie o to mi chodzi bo RecordCount z DataSource pokazuje ilosc wszystkich rekordow, nie tych wyswietlanych w DBGrid..

ale dzieki...

arturfir
  • Rejestracja: dni
  • Ostatnio: dni
0

Czy narawde nikt nie zna odpowiedzi na ten temat ;)

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 137
0

Jedyne co mi do głowy przychodzi to zbadać wielkość grida (Height), odjąć wysokoć nagłówka i podzielić przez wysokość wiersza.
Trochę zabawy z tymi wysokościami bo nie znalazłem takich własności, ale można kombinować na podstawie Fontu lub przy OnDraw sobie jakoś zczytać.
Nie wiem tylko czy gra jest warta świeczki.

arturfir
  • Rejestracja: dni
  • Ostatnio: dni
0

Moze sie zle wyrazilem na poczatku, ale chodzi mi dokladnie o ilosc rekordow w DBGRId (nie tylko tych widocznych).
Na przyklad w momencie filtrowania bazy powiazanej z DBGRID chcialbym znac ilosc znalezionych rekordow, czyli tych w DBGRID (bez wzgledu na rodzaj obslugiwanej bazy).

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 137
0

To chyba nie rozumiem.
Na mój rozum to DBGrid pokazuje tyle wierszy ile ma DataSet z nim powiązany czyli RecordCount, ale to już było i Ci nie pasowało.
To musisz chyba jaśniej.

arturfir
  • Rejestracja: dni
  • Ostatnio: dni
0

To sprobuje inaczej wyjasnic:
Mam DBGRID i DATASOURCE powiazany z komponentem obslugujacym pliki DBF (bez BDE)
W momencie filtrowania bazy czyli np. szukania wszystkich rekordow zaczynajacych sie na litere np.: 'A' chcialbym wiedziec ile rekordow znalazl.
Kiedy sie odwoluje do DATASOURCE to pokazuje mi ilosc wszystkich rekordow bazy.
I tak samo jak sie odwoluje bezposrednio do komponentu "DBF".
Ale wyniki w DBGRID dobrze pokazuje.
Dlatego chcialbym wiedziec jak odczytac ilosc komponentow ktore zostaly "zaladowane" do DBGRIDa.

Moze teraz troche jasniej..

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

To w takim razie albo coś źle robisz, albo komponenty do obsługi DBF są do bani :(
Jeżeli DataSource jest powiązany z jakimś Query lub Table, to po filtrowaniu (przez Filter, lub SQL) DataSet.RecordCount zwraca ilość wyfiltrowanych rekordów. Przynajmniej na pewno tak jest w przypadku Query :)

G2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 77
0

ja to mam tak:

Kopiuj
begin
Data.qrPacjenci.Close;
Data.qrPacjenci.Sql.Clear;
Data.qrPacjenci.Sql.Add('SELECT * from pacjenci where nazwisko like '+u+edit1.Text+'%'+u);
Data.qrPacjenci.ExecSql;
Data.qrPacjenci.Open;
oso:= Data.qrPacjenci.RecordCount;
Data.qrBadanie.RecordCount;
Statusbar1.Panels[0].Text:='Znaleziono '+IntToStr(oso)+' pozycje w bazie.';
end

wyrwane z procedury if ... then

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 137
0

Zgadzam się z Młodym. Albo się walnąłeś albo komponenty masz do bani.
Przed chwilą zbadałem Filter w TTable bo używam TQuery i nie byłem pewien.
Na Postgresie z Zeosem jest OK.

  • Rejestracja: dni
  • Ostatnio: dni
0

Ja bym to zrobił tak.
Label1.Caption := Table1.RecordCount

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.