Mam pytanie : Czy spotkaliście się z problemem dotyczącym niewłaściwego podawania wartości ilości rekordów przez RecordCount dla obiektu IBQuery.
Otóż sprawa wygląda tak : Delphi 7 + Firebird + komponent IBQuery z zakładki InterBase.
Robimy najprostsze zapytanie typu :
SELECT * FROM tabelka
Zakładamy, że w wyniku wykonanai powyższego zapytania otrzymujemy 100 rekordów.
Zapytanie jest połączone z DBGride'em, który wyświetla 10 pierwszych rekordów i suwak do przesuwania w pionie dla wyświetlenia dalszych.
Jeśli wykonamy funkcję IBQuery.RecordCount Delphi zwraca 10 zamiast 100.
Pomaga przejście do ostatniego rekordu a następnie pierwszego według zapisu.
IBQuery.Last;
IBQuery.First;
Po tych dwóch linijkach jest już prawidłowa wartość IBQuery.RecordCount.
Bardzo mnie to zdziwiło, bo dla bazy Paradox'a nie było takiego problemu.
Czy coś jest skopane w Delphi 7? Czy można ściągnąć jakiś upgrade do komponentów (może być specjalne do Firebird'a). Będę wdzięczny za podpowiedź.
Powiem szczerze, że wyszło to po wdrożeniu programu, gdy baza się zapełniła i stąd trudno było to wychwycić podczas testów, gdzie zazwyczaj wprowadza się po kilka rekordów.