AGB  ·  Datenschutz  ·  Impressum  







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

Daten schnell in VST laden

Ein Thema von youuu · begonnen am 14. Sep 2010 · letzter Beitrag vom 15. Sep 2010
Antwort Antwort
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#1

Daten schnell in VST laden

  Alt 14. Sep 2010, 22:09
Datenbank: mysql • Version: 5.x • Zugriff über: devart
Hi,

wie lade ich am schnellsten mehrere 1.000 Daten in ein VST?
Momentan mach ich es über (gekürzt):
Delphi-Quellcode:
    liste.test1:= Query.FieldByName('test1').AsWideString;
    Vst.addchild(nil, liste);
Jedoch dauert diese Art extrem lange.
Steven
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#2

AW: Daten schnell in VST laden

  Alt 14. Sep 2010, 22:39
Vst.RootNodeCount := 10000; und dann im OnGetText-Event den passenden Text rausgeben. Das wäre eine Möglichkeit.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Daten schnell in VST laden

  Alt 14. Sep 2010, 22:56
Ja, denke wie bei jedem WinControl (z.B. auch StringGrid) bei größeren Datenmengen nichts in das Control laden sondern nur den sichbaren Abschnitt aus der externen Datenquelle laden und bereit stellen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Daten schnell in VST laden

  Alt 15. Sep 2010, 00:47
Was soll der Benutzer mit tausend Datensätzen anfangen? Ich wäre da ziemlich überfordert, wenn ich die alle durchsehen müsste, um meine gewünschte Information zu bekommen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von wicht
wicht

Registriert seit: 15. Jan 2006
Ort: Das schöne Enger nahe Bielefeld
809 Beiträge
 
Delphi XE Professional
 
#5

AW: Daten schnell in VST laden

  Alt 15. Sep 2010, 01:23
Das ist natürlich wahr, aber eben eine der Stärken des VST

Die Frage ist auch noch, falls das hier youuu alles nicht so weiterhilft, wie er den Baum befüllt. Von welchem Typ ist das Objekt "liste"? Meine Zeit mit den DB-Komponenten ist lange vorbei... Macht er erst eine Query, iteriert dann über das Ergebnis und fügt jedes Node einzeln hinzu? Der Fehler wird vermutlich sein, dass das virtuelle Paradigma, oder wie man das nennt, hier nicht befolgt wurde. Selbst ein simples VST.Add() geht glaube ich noch recht schnell, auch wenn man es sehr sehr oft hintereinander aufruft. Das RootNodeCount ist aber der bessere Weg, denke ich.

Ich würde es mal so versuchen:
Query machen, Ergebnis irgendwo merken, RootNodeCount auf die Anzahl der Zeilen im Ergebnis setzen. Im OnGetText-Ereignis dann auf das gecachete Query-Ergebnis zugreifen und den passenden Text rausrücken. Dabei könnte man zum Beispiel den Index des Nodes, für welches OnGetText aufgerufen wird, benutzen, um die passenden Daten aus der Ergebnismenge herauszufischen.

Falls das auch noch nicht reicht.. etwas mehr Code, bitte .. und Entschuldigung für meine sehr knappe Antwort von vorhin. Ich musste weg, aber musste trotzdem noch antworten, war so ein innerer Zwang.

Gute Nacht.
http://streamwriter.org

"I make hits. Not the public. I tell the DJ’s what to play. Understand?"
  Mit Zitat antworten Zitat
youuu

Registriert seit: 2. Sep 2008
Ort: Kleve
822 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Daten schnell in VST laden

  Alt 15. Sep 2010, 08:17
Morgen, bin gestern eingepennt

Also, ich mach ein Query auf die DB, fülle die Klasse Liste und pack es in das VST.

Delphi-Quellcode:
    Query.SQL.Text := 'Query String'

    Query.Open;

    while not Query.eof do
    Begin
      Liste := TListe.Create;
      with Liste do
      Begin
        liste.test1:= Query.FieldByName('test1').AsWideString;
        .
        .
        .
      end;

      Vst.addchild(nil, Liste);

      Query.Next;
    End;
Steven
  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 01:34 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 by Thomas Breitkreuz