Thema: Delphi DBGrid scrolling

Einzelnen Beitrag anzeigen

Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: DBGrid scrolling

  Alt 6. Mär 2005, 20:31
Zitat von mschaefer:
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 ücer die Query von Hand zu begrenzen und wahrscheinlich vor der eigentlichen Abfrage zunächst ein Datensatztcount laufen 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.
Das stimmt so nicht. Wenn der verwendete TDataSet-Abkömmling bzw. die zugrundeliegende Datenbank sequenzierte DataSets zuläßt, dann kann man durch Setzen der entsprechenden Option im DataSet dies Einschalten und hat eine korrekte proportionale Darstellung des Scrollbalkens. Es werden aber (meist im Hintergund) alle Daten geladen. Die DataSet Komponente sollte dies aber optimal regeln.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat