AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDBGrid, TBookmarkList

Ein Thema von Thanatos81 · begonnen am 18. Okt 2005 · letzter Beitrag vom 30. Nov 2005
Antwort Antwort
Thanatos81
(Gast)

n/a Beiträge
 
#1

TDBGrid, TBookmarkList

  Alt 18. Okt 2005, 08:06
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,
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TDBGrid, TBookmarkList

  Alt 18. Okt 2005, 09:54
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
Frank
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#3

Re: TDBGrid, TBookmarkList

  Alt 18. Okt 2005, 10:15
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: TDBGrid, TBookmarkList

  Alt 18. Okt 2005, 10:27
Wenn Du sagst die Bookmarklist geht verloren nachdem Du DisableControls
ausgeführt hast könntest Du die Bookmarklist (Grid.SelectedRows) vorher
sichern.

Gruß

Frank
Frank
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#5

Re: TDBGrid, TBookmarkList

  Alt 18. Okt 2005, 10:31
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...
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: TDBGrid, TBookmarkList

  Alt 18. Okt 2005, 10:52
Als Alternative:
Bei meiner Db kann ich den RecNo direkt über:

nRecNo := integer(Pointer(DBGrid.SelectedRows.Items[i])^) ermitteln.

Gruß

Frank
Frank
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#7

Re: TDBGrid, TBookmarkList

  Alt 18. Okt 2005, 11:15
Ui! Das wäre genial, ich probiers mal nach der Mittagspause aus, Danke!
  Mit Zitat antworten Zitat
marsupilami79

Registriert seit: 19. Jul 2004
16 Beiträge
 
Delphi 12 Athens
 
#8

Re: TDBGrid, TBookmarkList

  Alt 18. Okt 2005, 13:15
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.
  Mit Zitat antworten Zitat
VizeTE

Registriert seit: 31. Dez 2002
178 Beiträge
 
Delphi 5 Enterprise
 
#9

Re: TDBGrid, TBookmarkList

  Alt 30. Nov 2005, 11:03
Zitat von marsupilami79:
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.
Ich habe genau das selbe Problem und habe es wie vorgeschlagen gelöst. Das funktioniert soweit auch. Aber irgendwie kommt mir die Lösung etwas wacklig vor. Irgendwer wird sich ja sicherlich etwas dabei gedachte haben die Bookmark-Liste zu löschen falls die Controls deaktiviert werden.

Kann jemand etwas zu dieser Variante sagen (ist stabil/nicht stabil) oder hat vielleicht jemand einen anderen Lösungsansatz?

Vielen Dank!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz