![]() |
DBGrid vs. ListView
Hallo zusammen,
spricht eigentlich etwas dagegen, wenn man statt einer DBGrid eine ListView verwendet in die das SQL-Ergebnis geschrieben wird? Die DBGrid ist in den Delphi Version 2-5 sehr buggy (z.B. die Scrollbar), so dass ich lieber die ListView verwende. Auch von der Performance her, sehe ich (bei bisher nur kleinen Tests) keinen Nachteil. Ich vermute, dass ein DBGrid doch auch nur das SQL-Ergebnis ausliest und in eine StringGrid schreibt, oder? Gibt es irgendetwas zu bedenken, wenn ich die ListView verwende? Da ich das DBGrid bisher immer nur als ReadOnly verwendet habe, geht mir doch keine Funktionalität verloren? Und auch dieses könnte man bestimmt durch ein "OnClick" händisch erledigen, oder? Danke Christian |
Re: DBGrid vs. ListView
Das DBGrid ist halt sehr schnell. Das greift direkt auf die Tabelle zu und liest nur die Zeilen aus, die gerade angezeigt werden.
Wenn du ein TListView benutzt, musst du immer alle einträge der Tabelle einlesen und eben große datenmengen in den Speicher befördern. ich würde sagen, bis zu einer datenmenge von ca 1000 zeilen ist das noch ganz in ornung. da dauert das in den speicher laden noch nicht so lange und du kannst noch ziemlich gut mit den einträgen arbeiten. Sobald du aber mehr als 1000 zeilen in die listview einfügen willst, würde ich dir dringend empfehlen das DBGrid zu benutzen! mit dem dbgrid kannst du locker 100.000 einträge verwalten und gut damit arbeiten, ohne probleme mit der geschwindigkeit zu bekommen. |
Re: DBGrid vs. ListView
Zitat:
Zitat:
Selbst haben wir unser größere Anwendung vom DB-Grid befreit und Arbeiten immer mit Limited-Abfragen (1 Mio.Datensätze anzeigen ist nunmal nicht gerade sinnvoll). Damit kommen wird schnell zur Anzeige und belasten den Server nicht übermäßig. Auch haben wir als Nebeneffekt die DB-Abhängigkeiten auch wieder los die manchmal bis ins Grid durchgeschlagen ist (Unicode-Support). |
Re: DBGrid vs. ListView
Hi folks,
wie aktuell doch manche Themen auch nach drei Jahren noch sind. Aus meinen Projekten ist das DBGrid schon lange verschwunden. Seit MS mit W95 die damals neuen common controls ListView und TreeView eingeführt hat, arbeiten die virtuellen Varianten dieser Komponenten zur Zufriedenheit meiner Anwender. Die vertraute Oberfläche sorgt für spontane Akzeptanz. Die Auswahlmöglichkeit unter den verschiedenen ViewStyles wird allgemein begrüßt. Neujahrsgrüße vom marabu |
Re: DBGrid vs. ListView
Hi,
ja, das stimmt! Das DBGrid ist wirklich ungewohnt und deshalb werden wohl die meisten benutzer für TListView sprechen. Jedoch bin ich der Meinung, dass viele Operationen mit dem DBGrid viel einfacher (und auch schneller) gehn! Zum Beispiel habe ich versucht die Spalten einer TListView zu vertauschen. Das geht auch ganz gut. Doch sobald ich dann eine neue Spalte hinzufügen möchte, kommt es zu Problemen: Irgendwie vertauscht er dann die einzelnen Spalten wieder so, wie sie zu Beginn waren. Dann fügt er die neue Spalte hinten an, ABER die Überschriften der einzelnen Spalten bleiben gleich. Somit stimmen die Spalten nicht mehr mit ihren Überschriften überein. Letztendlich habe ich mich dann für das DBGrid in meinen Programmen entschieden... |
Re: DBGrid vs. ListView
Wenn man etwas auf die Suche geht bekommt man auch DBGrids mit besserer Optik oder TListViews mit einfacherer/besserer Programmierung. Evtl. kostet es jedoch ein paar € (TElTreeStringGrid/TElDBTreeStringGrid, QuantumGrid, ...)
|
Re: DBGrid vs. ListView
Das Thema ist gut. Verwende auch kein DBGrid, allerdings hauptsächlich, weil es zu unflexibel ist. Nur wieso kommt ihr auf ListView und nicht auf ein normales Stringgrid ? Im Endeffekt macht das nicht mehr Arbeit, wie das DBGrid. Werden spezielle Eigenschaften gefordert, dann behaupte ich sogar, daß ein Programm mit Stringgrid schneller zu entwickeln ist, als mit einem DBGrid, was mühsam angepaßt werden muß. Bei den Spezialgrids Quantum usw. schlägt auch massiv zu Buche, daß man die erst mal kennen muß (Tricks und auch Bugs).
Ausführungsgeschwindigkeit : da gibt es einen unscheinbaren, aber fast nicht zu glaubenden Effekt zu beobachten. Wird das Stringgrid Zeile für Zeile dargestellt, oder aber im Hintergrund das macht einen Faktor von mind. 100 (bei sinnvollen Datenmengen) aus. Und das ist kein Witz ! Wir hatten hier Testreihen gemacht. Bei 50.000 Datensätze aus DB gelesen (wer macht sowas ?) und im Stringgrid dargestellt. Dauer ca. 1 Sek. Vielleicht warens auch 5 oder 10. Dasselbe mit direkter Darstellung : ca. 1 St. :shock: Und das war kein ganz simples Stringgrid. Nur mal als Anregung. Zahlen ohne Gewähr. :mrgreen: Aber die Größenordnung des Unterschiedes (also ungewohnte Warterei) war echt sehr verblüffend. :shock: |
Re: DBGrid vs. ListView
Zitat:
Zitat:
Zitat:
|
Re: DBGrid vs. ListView
Zitat:
Wenn die Komponenten nicht schon so oft in dem Projekt verwendet würden, hätte ich sie schon lange durch JVCL Komponenten ersetzt. Ein Beispiel:
Delphi-Quellcode:
TElDBTree.Create:
FDataFields := TStringList.Create; TElDBTree.Destroy: FDataFields.Free; TElDBTree.SetDataFields(Value: TStringList): FDataFields := Value; // wie war das nochmal mit Settern für StringListen, wenn man sie selbst verwaltet? |
Re: DBGrid vs. ListView
Zitat:
Und außerdem bin ich noch aktuell bei der 3.2er-Version. Werde die 4er auslassen und gleich bei der 5er wieder einsteigen. Zitat:
Zitat:
Zitat:
Zitat:
Meldest du auch diese Bugs das sie behoben werden können? Ich kann mich jedenfalls nicht beschweren. Die Fehler die ich gefunden hatte waren meist komplexerer Art. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:16 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 by Thomas Breitkreuz