AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi VST mit ca. 50.000 Datensätze verdammt langsam, warum???
Thema durchsuchen
Ansicht
Themen-Optionen

VST mit ca. 50.000 Datensätze verdammt langsam, warum???

Ein Thema von Piro · begonnen am 7. Dez 2009 · letzter Beitrag vom 8. Dez 2009
 
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: VST mit ca. 50.000 Datensätze verdammt langsam, warum???

  Alt 7. Dez 2009, 19:58
Hallo,

Delphi-Quellcode:
procedure Tfrm_main.SQLDataToVST_SubnetDetails;
var
  i : Integer;
  SubnetDetailsData : TOSubnetDetailsData;
begin
  vst_network_subnetdetails.BeginUpdate;
  try
    vst_network_subnetdetails.Clear;

    ... und alles andere

   // Application.ProcessMessages; was soll das denn ????

  finally
    vst_network_subnetdetails.EndUpdate;
  end;
end;
Und lass vor allem das Application.ProcessMessages; weg.

Ausserdem wundert mich, warum du überall String-Vergleiche hast

Delphi-Quellcode:
procedure Tfrm_main.vst_network_subnetdetailsGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
var
  SubnetDetailsData : TOSubnetDetailsData;
begin
  SubnetDetailsData := TOSubnetDetailsData(vst_network_subnetdetails.GetNodeData(Node)^);
  if vst_network_subnetdetails.Header.Columns[Column].Text = 'IP Address'    
     then CellText := SubnetDetailsData.ipaddress;
  if vst_network_subnetdetails.Header.Columns[Column].Text = 'Device'       
     then CellText := SubnetDetailsData.device;
end;
Du weisst schon, dass Column (als Integer beginnend mit 0) viel besser geeignet ist,
dann geht es sogar mit case ?

Wenn du schon Strings vergleichst, dann so

Delphi-Quellcode:
procedure Tfrm_main.vst_network_subnetdetailsGetText(Sender: TBaseVirtualTree;
  Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
  var CellText: WideString);
var
  SubnetDetailsData : TOSubnetDetailsData;
begin
  SubnetDetailsData := TOSubnetDetailsData(vst_network_subnetdetails.GetNodeData(Node)^);
  if vst_network_subnetdetails.Header.Columns[Column].Text = 'IP Addressthen
  begin
    CellText := SubnetDetailsData.ipaddress;
     Exit;
  end;
  if vst_network_subnetdetails.Header.Columns[Column].Text = 'Devicethen
  begin
    CellText := SubnetDetailsData.device;
    Exit;
  end;
end;
Bringst zumindestens ein bisschen Speed-Up.


Heiko
Heiko
  Mit Zitat antworten Zitat
 


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:27 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