DBGRID i ilosc wyswietlanych rekordow

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.

0

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

Label1.Caption := DataSource.DataSet.RecordCount
0

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

ale dzieki...

0

Czy narawde nikt nie zna odpowiedzi na ten temat ;)

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.

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).

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.

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..

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 :)

0

ja to mam tak:

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

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.

0

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

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