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.
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.
Jeśli DBGrida masz połączonego przez jakiegoś DataSource to wystarczy :
Label1.Caption := DataSource.DataSet.RecordCount
Niestety nie o to mi chodzi bo RecordCount z DataSource pokazuje ilosc wszystkich rekordow, nie tych wyswietlanych w DBGrid..
ale dzieki...
Czy narawde nikt nie zna odpowiedzi na ten temat ;)
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.
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).
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.
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..
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 :)
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
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.
Ja bym to zrobił tak.
Label1.Caption := Table1.RecordCount