Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

array of record füllen

Frage Entwicklung Pascal und Delphi

Mitglied: Gushiken

Gushiken (Level 1) - Jetzt verbinden

27.11.2008, aktualisiert 08.12.2008, 6066 Aufrufe, 1 Kommentar

Für eine aktuelle Anwendung von mir muss ich ein array of records mit Datensätzen aus einer SQL Datenbank befüllen. Funktionerit soweit ganz gut, ist nur SEHR langsam...

Wie schon erwähnt klappt das ganze eigentlich schon ganz gut. Allerdings geht die Performace ziemlich schnell in die Knie.
Sobald ich versuche ca. 100000 Datensätze einzulesen dauert das ganze, je nach Laune des Computers und laufenden Programmen, zwischen 4 und 8 Minuten!!!
Da das ganze beim Programmstart ausgeführt werden soll ist das untragbar, es sollte maximal 10-20 Sekunden dauern....
Hier einmal ein kleiner Beispielcode (Das Record ist eigentlich wesentlich umfangreicher):

01.
// Record und Array of Record 
02.
TPerson = packed record 
03.
  nachname:string[50]; 
04.
  end; 
05.
TPersonArray = array of TPerson; 
06.
 
07.
// Funktion 
08.
with query do 
09.
begin 
10.
  with sql do 
11.
  begin 
12.
    clear; 
13.
    add('<SELECT Anweisung>'); 
14.
  end; 
15.
  open; 
16.
  first; 
17.
  len:=RecordCount; 
18.
  setLength(personenArray,len); 
19.
  len:=0; 
20.
  while len<RecordCount do 
21.
  begin 
22.
    with personenArray[len] do 
23.
    begin 
24.
      nachname:=Fields.Fields[0].AsString; 
25.
    end; 
26.
    next; 
27.
    len:= len+1; 
28.
  end; 
29.
end;
Vielleicht habt ihr ja eine Idee wie man das ganze schneller machen kann.

Gruß, Gushiken
Mitglied: hermes
08.12.2008 um 07:25 Uhr
Hallo,

gibt es einen Grund warum die WHILE Schleife nicht mit einem "while not query.eof" gemacht wird ?

Man könnte zumindest len := len + 1 einsparen, und die recordcount Abfrage soll auch nicht die schnellste sein..

Falls parallel dazu noch die Daten in einem Grid o.ä. angezeigt werden, könnte man mit DisableControls vielleicht noch was an Geschwindigkeit rausholen.

vg
Bitte warten ..
Ähnliche Inhalte
DNS
gelöst SPF records (3)

Frage von itnobby zum Thema DNS ...

DNS
BAD PTR Record beim Mailversand (4)

Frage von Markowitsch zum Thema DNS ...

DNS
gelöst DNS A und AAAA ipv6 records (4)

Frage von noise1 zum Thema DNS ...

Entwicklung
gelöst PDF-Formular: Dropdown aus XML füllen (1)

Frage von Juweee zum Thema Entwicklung ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(6)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Monitoring
Netzwerk-Monitoring Software (16)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Windows 10 Ordnerfreigabe (15)

Frage von Xaero1982 zum Thema Windows 10 ...