Top-Themen

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, 6079 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
Batch & Shell
VBS: mehrere ClickBox Objekte automatsch füllen (ohne Array)
gelöst Frage von mobby83Batch & Shell5 Kommentare

Hallo Forum, ich bin "neu" hier, auch wenn ich hier schon oft anwesend war und hilfreiche Tipps fand. Heute ...

DNS
SPF records
gelöst Frage von itnobbyDNS3 Kommentare

Hallo zusammen, ich hab mal eine Frage zu SPF records. Ich besitze 2 Domänen www.domain1.de und www.domain2.de Auf dem ...

Windows Tools
Makro Recorder
gelöst Frage von grasihuepferWindows Tools4 Kommentare

Hi Leute! Ich bin auf der Suche nach einem Makro Recorder. Er soll verschiedene Abläufe im Hintergrund ausführen. Bei ...

Batch & Shell
Leere Array-Werte aus einem Array entfernen
gelöst Frage von ToniHoBatch & Shell3 Kommentare

Hallo zusammen, ich bin dabei ein Powershell-Script zu schreiben, welches diverse Reports generieren kann. Für die Eingabe von SamAccountNames ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 2 StundenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 6 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server15 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell10 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Windows Server
Administratoren-Gruppe abfragen?
Frage von 1410640014Windows Server6 Kommentare

Hallo, kennt jemand eine einfache (und schnelle) Möglichkeit, von allen Client-Computern im Active Directorey die Administratoren-Gruppe abzufragen, wer da ...