Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Stored Procedure in DBGrid (https://www.delphipraxis.net/46193-stored-procedure-dbgrid.html)

meierotto 20. Mai 2005 11:26

Datenbank: SQL Server 2000 • Zugriff über: ADO

Stored Procedure in DBGrid
 
Hallo,

ich lese über eine TADOStoredProc Statistiktabellen aus. Bisher füllte ich ein Grid zeilenweise mittels fieldbyname. Da das Recordset aber inzwischen sehr große Datenmengen zurückliefert, ist die Dauer des Grid-Füllens inakzeptabel geworden. Deshalb versuche ich das ganze über ein DBGrid zu realisieren, habe aber bisher keinen Erfolg.

Kann mir vielleicht jemand weiterhelfen?

Danke im Voraus.

meierotto

Hansa 20. Mai 2005 11:46

Re: Stored Procedure in DBGrid
 
Hi,

willkommen in der DP. IMHO wird ein DBGrid nicht viel nützen. Der Schuß könnte sogar nach hinten losgehen und es wird noch schlimmer. Zuerst die Binsenweisheit : Schränke die Datenmenge ein. Denn ein Grid mit 10.000 Zeilen kann man kaum noch lesen und scrollt sich kaputt. Allerdings wird das ja wohl nicht gehen, das wäre zu einfach.

Also müssen zumindest die abgefragten Felder eingschränkt werden. Das bedeutet :

kein

SQL-Code:
select * from Table
benutzen sondern :

SQL-Code:
select Feld1, Feld2 from Table
Also explizit die benötigten Felder angeben !

Das nächste und wichtigste wäre Windows. Die Zeichenoperationen in einem Grid dauern recht lange. Es wirkt Wunder wenn man das Grid zuerst füllt und dann erst anzeigt !! Also Grid.Hide -> befüllen -> Grid.Show. Das verhindert, daß Windows das ganze Ding durchrattert und jede Zelle erst mal zeichnen und anzeigen muß. Scrollt der User dann seitenweise, dann wird er sich nicht beschweren können. Je nach Grid würde mich bis zu Faktor 100 :!: nichts wundern.

P.S.: was ist eigentlich mit der Stored Procedure ? :shock:

meierotto 20. Mai 2005 12:44

Re: Stored Procedure in DBGrid
 
Vielen Dank fürs Helfenwollen,

habs jetzt aber doch mit einem dbgrid hinbekommen. Die Abfragen sind schon bestens optimiert, da lässt sich nichts weiter machen, durch den direkten Zugriff auf das Dataset der StoredProc ist die Geschwindigkeit des Einlesens (nicht des Abfragens) aber drastisch gestiegen.

Trotzdem nochmal Danke

P.S. stored procedure ist eine auf dem Datenbankserver gespeicherte Transact-SQL-Prozedur :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:22 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