Einzelnen Beitrag anzeigen

Partikelecho

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

AW: Insert-Schleife viel zu langsam

  Alt 7. Dez 2011, 07:49
Hallo,
Ich hab nun endlich wieder Zugriff auf meine Source gehabt und wollte euch noch zeigen, wie ich die Zeit massiv verkürzen konnte, in der die Dateien eingelesen werden.

tankards Vorschlag mit Transactions zu arbeiten war zielführend.
Zusätzlich habe ich den Insertpart durch AppendRecord ersetzt.
Falls ihr noch Verbesserungsvorschläge habt, wie ich die Zeit weiter verkürzen könnte, dann immer her damit.

Danke für eure Hilfe..

Delphi-Quellcode:
procedure TFRM_Main.ReadInInvA;
var
  i, invasize:Integer;
  invaaccessed, invacreated, invamodified:String;
  created, accessed, modified:TDateTime;
begin
  DB_Container.Directory := CXBE_InvDir.Text;
  DB_Container.Open;
  TBL_Container.DatabaseName := DB_Container.DatabaseName;
  DB_Container.StartTransaction;
  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]);
    with TBL_Container do
    begin
      DatabaseName := DB_Container.DatabaseName;
      TableName := invaname;
      Open;
      AppendRecord([null, SL[i], invacreated, invamodified, invaaccessed, invasize]);
      Close;
    end;
  end;
  DB_Container.Commit;
  DB_Container.Close;
end;

Geändert von Partikelecho ( 7. Dez 2011 um 08:03 Uhr) Grund: Code-Tag gefixt
  Mit Zitat antworten Zitat