AGB  ·  Datenschutz  ·  Impressum  







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

TClientDataSet sehr langsam

Ein Thema von Pravljica · begonnen am 8. Jun 2006 · letzter Beitrag vom 8. Jun 2006
Antwort Antwort
Pravljica

Registriert seit: 7. Mai 2006
13 Beiträge
 
Delphi 2006 Architect
 
#1

TClientDataSet sehr langsam

  Alt 8. Jun 2006, 00:23
Halo,

Ich habe ein TClientDataSet, der mit TDBGrid verbunden ist. Ich habe auch einen Button, mit dem ich ClientDataSet in eine XML Datei speicher. Aber das geht sehr langsam, fur 500 Zeilen dauert es zirka 5 Sekunden.
Es geht so:
Delphi-Quellcode:
while not ClientDataSet1.eof do
begin
  ClientDataSet1.Next;
end;
Es ist noch mehr Code in dieser while schleife, aber auch das ist langsam. Kann Ich dass irgendwie schneller machen?

Danke
Simon
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TClientDataSet sehr langsam

  Alt 8. Jun 2006, 05:25
Die Erzeugung einer XML-Datei dauert nunmal ein Weilchen. Ich finde hierfür 5 Sekunden nicht als lang.
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: TClientDataSet sehr langsam

  Alt 8. Jun 2006, 06:17
Hallo Simon,

fünf Sekunden für das Schreiben für 500 records? Das müssen schon sehr komplexe Strukturen sein. Allerdings verstehe ich nicht, was das mit deiner Iteration über die Zeile im ClientDataSet zu tun haben soll. Was machst du in dieser Schleife? Als XML-Dokument weggeschrieben werden deine Daten doch mit der Methode ApplyUpdates() von ClientDataSet. Wie groß wird das resultierende XML-Dokument denn?

Grüße vom marabu
  Mit Zitat antworten Zitat
Pravljica

Registriert seit: 7. Mai 2006
13 Beiträge
 
Delphi 2006 Architect
 
#4

Re: TClientDataSet sehr langsam

  Alt 8. Jun 2006, 06:41
Hallo,

Ich muss alle records in dieser Schleife uberprufen und dann kann Ich sie speichern mit ApplyUpdates. Aber fur diesen versuch habe Ich dass ales ins Komentare getan. In der Schleife ist nur ClientDataSet1.Next.
Vielleicht liegt es darauf, das dieser ClientDataSet mit DBGrid verbunden ist - Ich kann sehen wie sich der Kursor in DBGrid durch Zeilen bewegt.
Simon
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: TClientDataSet sehr langsam

  Alt 8. Jun 2006, 06:52
Du solltest vor dem Eintritt in deine Prüfschleife die Methode DisableControls und anschließend die Methode EnableControls des ClientDataSet aufrufen. Auch solltest du prüfen, ob nicht irgendwelche Ereignis-Routinen an ClientDataSet unnötig aktiv sind, während du durch die Zeilen iterierst.

marabu
  Mit Zitat antworten Zitat
Pravljica

Registriert seit: 7. Mai 2006
13 Beiträge
 
Delphi 2006 Architect
 
#6

Re: TClientDataSet sehr langsam

  Alt 8. Jun 2006, 07:00
DisableControls und am Ende EnableControls - das habe Ich gesucht.

Danke
Simon
  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 02:15 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