![]() |
Datenbank: firebird embedded • Version: 1.5.2.4731 • Zugriff über: ZEOS 6.1.5 inkl Patch 2
DBGrid scrolling
Programme :
Delpi 7 Pro + Firebird embedded + Zeos Problem : Beim Ziehen des Scrollbalkens mit der Maus wird der Inhalt eine TDBGrid nicht aktualisiert, der Inhalt scrollt also nicht mit. Erst nach Loslassen der Maustaste wird der Inhalt des Stringgrid aktualisiert. Frage : Was muss ich einstellen, damit der Inhalt des TDBGrids auch während des Scrollens aktualisiert wird oder welches andere Grid oder Listbox etc könnte ich nehemen, damit diese Aktualisierung sofort erfolgt? Bei einem TStringGrid währe das die Option GoThumbTracking, aber die gibt es bei einem TDBGrid nicht, oder doch? Auch ein OnMouseMove-Ereignis mit DBGrid1.Repaint; funktioniert nicht. |
Re: DBGrid scrolling
N´abend,
sorry, da gibt es prinzipbedingt keine Lösung mit TDBGrid. Hintergrund ist, das DBDataset die Daten immer Packetweise anfordert, was für die Datenbankansteurerung auch Sinn macht. Der Haken zeigt sich am DBGrid. Es läd die Datensätze nicht Zeilenweise zu. Der Scrollbalken ist zudem nicht proportional. Kann er auch nicht sein, da das Grid kein Wissen über die gesamte Menge der Abfrage hat und im Dataset diese auch nicht hinterlegt ist, sondern nur die Kriterien nach denemn nachgeladen wird, wenn man an das Ende/den Anfang des aktuellen Pakets kommt. Eine Lösung wäre eine SQL-Abfrage durchzuführen und die Daten von Hand in ein StringGrid einzulesen. Das kann bei großen Mengen aber zu erheblichen Speicherverbrauch führen und hier ist man daher gehalten diese Maximalmenge über die Query von Hand zu begrenzen und wahrscheinlich vor der eigentlichen Abfrage zunächst ein Datensatztcount laufen zu lassen, um festzustellen wieviel Datensätze man nun zu erwarten hat. FAZIT: Es ist ein Systemproblem und läßt sich nur auf Umwegen mit deutlichem Aufwand lösen. Grüße // Martin |
Re: DBGrid scrolling
Zitat:
|
Re: DBGrid scrolling
Moin, moin,
Lesen hilft! Unter der Kombination Firebird-Zeos ist das wie ich beschrieben habe. Bei den Filedatenbanken Paradox und DBase gab es meines Erachtens so eine Einstellung wie Du beschrirben hast, bin mir da aber nicht mal sicher. Wenn Du Dich mit den Zeos-Datasets auskennst, wirst Du auch die entsprechende Eigenschaft/Property benennen können wo dies einzustellen ist. Kenne Zeos gut und mir ist da keine Möglichkeit bekannt, aber ein Beispiel würde mich überzeugen... Grüße // Martin |
Re: DBGrid scrolling
Zitat:
|
Re: DBGrid scrolling
Moin Union,
dann lass uns mal überraschen wie das nachher läuft. Grüße // Martin |
Re: DBGrid scrolling
Ich seh' schon, ich bin hier genau richtig, um dumme Fragen zu stellen. :thumb:
Eure Antworten helfen mir sehr weiter und ich werde es mal mit einem StringGrid probieren. Wegen dem Speicherverbrauch hoffe ich, das das Betriebssystem das irgendwie regelt außerdem geht es nur um eine relativ kleine Datenbank mit maximal 10.000-100.000 Einträgen zu je maximal 80 Zeichen für diese Liste. Das wären also maximal 8 MB Speicherverbrauch und das sollte erstmal kein Problem sein, oder irre ich mich da? Gibt es eventuell einen besseren Weg, um auf eine Firebird embedded Datenbank zuzugreifen, ohne ZEOS zu benutzen und ohne ein Produkt kaufen zu müssen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz