![]() |
TDBGrid, TBookmarkList
Guten Morgen DP!
Ich hab hier ein Projekt mit nem TDBGrid mit MultiSelect := true. Die Benutzer können nun mehrere Berichte markieren und eine Auswertung darüber erhalten oder Massenänderungen vornehmen. Jetzt ist allerdings der unangenehme Effekt, dass beim GotoBookmark der Sprung im DBGrid sichtbar ist. Und diese Anzeige kostet bei ca. 10.000 Datensätze natürlich Zeit und sieht auch nicht wirklich schick aus. Ausschalten per DBGrid.DataSource.DataSet.DisableControls oder DBGrid.DataSource := nil ist natürlich auch nicht möglich, da die TBookMarkList ja vom DBGrid gehalten wird. Gibt es einige Möglichkeit aus DBGrid.SelectedRows.Items[i] Informationen über den Datensatz zu beziehen, ohne ihn zum aktuellen zu machen? Die RecNo würde mir ja schon reichen, oder ein Feldwert.... Danke im Voraus, |
Re: TDBGrid, TBookmarkList
Vielleicht wäre es eine Möglichkeit die Datenbank ein zweites Mal zu öffnen
und die Sprünge in dieser Datenbank vorzunehmen. Vorraussetzung ist natürlich das die 2. Db etwas mit den Bookmark der 1 Db anzufangen weiß. Grüße Frank |
Re: TDBGrid, TBookmarkList
Ich habe es gerade folgendermaßen gelöst: ich setze einfach DBGrid.Visible auf false, dadurch hab ich eine Beschleunigung um ca. 20 Sekunden erreicht.
Danke für deine Antwort Soulmaker, ich hatte erst auch an eine zweite TTable gedacht, da aber das Netzwerk beim Kunden fast dauernd unter Volllast steht, wollte ich die Daten kein zweites Mal abrufen. Aber eventuell wird dort demnächst ein neues Netzwerk installiert, dann wäre das eine Überlegung wert. |
Re: TDBGrid, TBookmarkList
Wenn Du sagst die Bookmarklist geht verloren nachdem Du DisableControls
ausgeführt hast könntest Du die Bookmarklist (Grid.SelectedRows) vorher sichern. Gruß Frank |
Re: TDBGrid, TBookmarkList
Das hab ich schon versucht, allerdings muss beim Create einer TBookMarkList ein DBGrid übergeben werden. Und wenn ich mir DBGrid.SelectedRows.Items[i] (ist ein String) anschaue, ist dieser immer leer, selbst wenn alle Datensätze markiert sind...
|
Re: TDBGrid, TBookmarkList
Als Alternative:
Bei meiner Db kann ich den RecNo direkt über:
Delphi-Quellcode:
ermitteln.
nRecNo := integer(Pointer(DBGrid.SelectedRows.Items[i])^)
Gruß Frank |
Re: TDBGrid, TBookmarkList
Ui! Das wäre genial, ich probiers mal nach der Mittagspause aus, Danke!
|
Re: TDBGrid, TBookmarkList
So 'ne Bookmark ist doch eigentlich auch nur 'n String. Sichere das ganze doch in 'nem dynamischen Array oder 'ner TStringList und mach dann DisableControls.
|
Re: TDBGrid, TBookmarkList
Zitat:
Kann jemand etwas zu dieser Variante sagen (ist stabil/nicht stabil) oder hat vielleicht jemand einen anderen Lösungsansatz? Vielen Dank! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:26 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