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.