Einzelnen Beitrag anzeigen

Partikelecho

Registriert seit: 2. Dez 2011
14 Beiträge
 
Delphi 6 Enterprise
 
#12

AW: Insert-Schleife viel zu langsam

  Alt 9. Dez 2011, 07:18
Na ihr habt ja den sprichwörtlichen Clown verschluckt

Ich habe die Prozedur noch ein bisschen beschleunigen können, nach dem himitsu meinen Knoten im Schlauch entfernt hat.

Zum Thema StringLuder, die StringList wird immer ordnungsgemäß nach ihrem Gebrauch frei gegeben und sie wird nicht gleichzeitig an mehreren Stellen verwendet. Ich habe 3 unterschiedliche Einleseprozesse, welche aber noch ineinander integriert werden sollen. Die StringList hat dann nur noch eine Aufgabe und dann kann ich sie bequem gemäß ihrem Zweck benennen.

Delphi-Quellcode:
procedure TFRM_Main.ReadInInvA;
var
  i, invasize:Integer;
  invaaccessed, invacreated, invamodified:String;
  created, accessed, modified:TDateTime;
begin
  DB_Container.Close;
  DB_Container.Directory := CXBE_InvDir.Text;
  DB_Container.Open;
  TBL_Container.DatabaseName := DB_Container.DatabaseName;
  TBL_Container.TableName := invaname;
  DB_Container.StartTransaction;
  TBL_Container.Open;
  TBL_Container.DisableControls;
  for i := 0 to SL.Count-1 do
  begin
    if GetFileTimes(CXBE_DbDir.Text+'\'+SL[i], created, accessed, modified) then
    begin
      invaaccessed := DateTimeToStr(accessed);
      invacreated := DateTimeToStr(created);
      invamodified := DateTimeToStr(modified);
    end;
    invasize := GetFileSize(CXBE_DbDir.Text+'\'+SL[i]);
    TBL_Container.AppendRecord([null, SL[i], invacreated, invamodified, invaaccessed, invasize]);
  end;
  TBL_Container.EnableControls;
  TBL_Container.Close;
  DB_Container.Commit;
  DB_Container.Close;
end;
Als nächstes sollte ich mir wohl mal über eine einfachere Lösung zum Thema GetFileSize und GetFileTimes machen,
allerdings muss ich mich dazu noch einmal genau belesen.. Sinnvoll wäre es doch eventuell diese Informationen über eine Funktion auszulesen, oder?

Außerdem könnte ich bei AppendRecord genausogut DateTimeToStr(created) usw eintragen, anstatt erst Variablen zu befüllen.

Geändert von Partikelecho ( 9. Dez 2011 um 07:27 Uhr)
  Mit Zitat antworten Zitat