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
 
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#6

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

  Alt 7. Dez 2009, 19:33
Das Programm ist eine Art Verwaltung von Subnetzen mit den jeweilige Wertenbereichen.

Hier meine Datenstruktur:
Delphi-Quellcode:
 type
  TOSubnetDetailsData = class
  private
    //
  public
    id : String;
    ipaddress : String;
    device : String;
    dhcp_exclude : Integer;
    dhcp_mac : String;
    site : String;
    building : String;
    floor : String;
    position : String;
    vlan : String;
    subnetdevice : String;
    description : String;
    sid : String;

    function GetDHCP_ExcludedName: String;
    property dhcp_excludedname : String read GetDHCP_ExcludedName;
  end;
So lade ich die Daten aus der DB in das VST
Delphi-Quellcode:
procedure Tfrm_main.SQLDataToVST_SubnetDetails;
var
 i : Integer;
 SubnetDetailsData : TOSubnetDetailsData;
begin
 vst_network_subnetdetails.Clear;

 DSData.Close;
 DSData.CommandText := 'select network_subnetdetails.id,'+
                               'network_subnetdetails.ipaddress,'+
                               'network_subnetdetails.device,'+
                               'network_subnetdetails.dhcp_exclude,'+
                               'network_subnetdetails.dhcp_mac,'+
                               'network_sites.site,'+
                               'network_subnets.building,'+
                               'network_subnets.floor,'+
                               'network_subnets.position,'+
                               'network_subnets.vlan,'+
                               'network_subnets.device as subnetdevice,'+
                               'network_subnetdetails.description,'+
                               'network_subnetdetails.subnet_id '+
                       'from network_subnets '+
                               'inner join network_subnetdetails on network_subnets.id = network_subnetdetails.subnet_id '+
                               'inner join network_sites on network_subnets.site_id = network_sites.id '+
                       'order by cast(parsename([ipaddress], 4) as int),'+
                                'cast(parsename([ipaddress], 3) as int),'+
                                'cast(parsename([ipaddress], 2) as int),'+
                                'cast(parsename([ipaddress], 1) as int)';
 DSData.Open;
 DSData.First;
 for i := 0 to DSData.RecordCount - 1 do
 begin
   SubnetDetailsData := TOSubnetDetailsData.Create;
   with SubnetDetailsData do
   begin
     id := DSData.FieldByName('id').AsString;
     ipaddress := DSData.FieldByName('ipaddress').AsString;
     device := DSData.FieldByName('device').AsString;
     dhcp_exclude := DSData.FieldByName('dhcp_exclude').AsInteger;
     dhcp_mac := DSData.FieldByName('dhcp_mac').AsString;
     site := DSData.FieldByName('site').AsString;
     building := DSData.FieldByName('building').AsString;
     floor := DSData.FieldByName('floor').AsString;
     position := DSData.FieldByName('position').AsString;
     vlan := DSData.FieldByName('vlan').AsString;
     subnetdevice := DSData.FieldByName('subnetdevice').AsString;
     description := DSData.FieldByName('description').AsString;
     sid := DSData.FieldByName('subnet_id').AsString;
   end;
   vst_network_subnetdetails.AddChild(nil, SubnetDetailsData);
   Application.ProcessMessages;
   DSData.Next;
 end;
 DSData.Close;
end;
Die Abfrage gegen die Datenbank geht schnell und das AddChild dauert seine Zeit. Kann ich da noch etwas optimieren?
Die Struktur und die Methoden sind in Anlehnung an das Stammtisch-Video für VST.

Falls das ein normales Verhalten des VST ist, werde ich den View limitieren.

Sven
  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 13:07 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