![]() |
Datenbank: MS SQL • Zugriff über: ADO
DBGrid alle Datensätze makieren
Hi,
kennt ihr einen perfomanten Code der mir alle Datensätze in einem DBGrid selektiert? Zur Zeit verwende ich den Code unten, der allerdings bei nur 2500 Datensätzen merklich Zeit braucht. Das muss doch auch schneller gehen...
Delphi-Quellcode:
LG
Screen.Cursor := crArrow;
DM_ProjectPoint.QRY_All.DisableControls; DM_ProjectPoint.QRY_All.First; while not DM_ProjectPoint.QRY_All.Eof do begin DBGrid.SelectedRows.CurrentRowSelected := CheckBox1.Checked; DM_ProjectPoint.QRY_All.Next; end; DM_ProjectPoint.QRY_All.First; DM_ProjectPoint.QRY_All.EnableControls; Screen.Cursor := crDefault; Marcus |
Re: DBGrid alle Datensätze makieren
Vielleicht würde es reichen, primär nur sichtbare Datensätze zu markieren.
Es wäre vielleicht grundsätzlich über eine Limitierung nachzudenken. |
Re: DBGrid alle Datensätze makieren
Hi mkinzler,
nur das makieren der sichtbaren Datensätze reich tleider nicht aus. Zum Glück kommt der Fall das das gesammte DbGrid makiert werden muss nicht so oft vor. Da du eine Limitierung vorschlägst wird es wohl keine schnellere Variante geben ?!? Gruß Marcus |
Re: DBGrid alle Datensätze makieren
Keine mir bekannte
|
Re: DBGrid alle Datensätze makieren
Wie wäre es mit einem Fake? Du zeichnest das Grid so, als ob alle markiert wären, und die abzuarbeitenden Datensätze hast du ja in der Query.
|
Re: DBGrid alle Datensätze makieren
Würde ich nicht als fake bezeichnen, sondern als ernsthafte Alternative. man fetcht immer nur einen Ausschnitt, welcher etwas größer als der dargestellte ist und reagiert dann auf verschieben des Datensatzzeigers.
|
Re: DBGrid alle Datensätze makieren
Ich meinte aber wirklich nur zeichnen, also Hintergund und Textfarbe in OnDrawColumnCell auf die bei der Markierung verwendeten setzen, nicht tatsächlich markieren. Als ernsthafte Alternative würde ich diesen 'Fake' dennoch bezeichnen. ;)
|
Re: DBGrid alle Datensätze makieren
@Peinhard: Die Idee ist gut, da der User auch einzelne Datensätze makieren kann, müsste ich prüfen ob gerade ob er gerade alles, oder nur eine Teilmenge haben will.
|
Re: DBGrid alle Datensätze makieren
So ist es, das 'Interface' muss so gestaltet sein, dass du die Fälle unterscheiden kannst, und auch die 'weiterverarbeitenden' Routinen müssen entsprechend ergänzt werden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 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