Thema: Delphi Performance verbessern

Einzelnen Beitrag anzeigen

Luncustaf

Registriert seit: 31. Jan 2003
80 Beiträge
 
Delphi 6 Enterprise
 
#21

Re: Performance verbessern

  Alt 10. Dez 2006, 18:11
hi,

hab das nun so eingebaut

Delphi-Quellcode:
tv_rezept.Items.BeginUpdate;
try
  frm_laden.Show;
  frm_laden.Label1.Caption := 'Lade Datenbank';
  Application.ProcessMessages;
  for i := 0 to namen.Count -1 do
  begin
     sqlq.Active := False;
     sqlq.SQL.Text := 'SELECT Count(name) FROM rezepte WHERE kategorie= :kat';
     sqlqrez.SQL.Text := 'SELECT Count(name) FROM rezepte WHERE unterkat= :unterkat AND kategorie= :kat GROUP BY unterkat';
     sqlq.ParamByName('kat').Value := namen.Strings[i];
     sqlq.Open;
     with tv_rezept.Items do
     begin
       t := AddChild(nil,namen.Strings[i] + ' ('+sqlq.fieldbyname('Count(name)').AsString+')');
     end;
     for a := 0 to 8 do
     begin
       if not (ini.ReadString(namen.Strings[i],'unter'+IntToStr(a),'') = '') then
       begin
         unterkat.Add(ini.ReadString(namen.Strings[i],'unter'+IntToStr(a),''));
       end;
     end;//for a :=
     for a := 0 to unterkat.Count -1 do
     begin
         sqlqrez.ParamByName('unterkat').Value := unterkat.Strings[a];
         sqlqrez.Open;
         tv_rezept.Items.AddChild(t,unterkat.Strings[a]+ ' (' + sqlqrez.fieldbyname('Count(name)').AsString +')' );
         sqlqrez.Active := False;
     end;//for a
     unterkat.Clear;
     frm_laden.progress.StepBy(10);
  end;//for i
finally
  tv_rezept.Items.EndUpdate;
  frm_laden.Close;
end;
hmm wirklich schneller ist es nun aber auch nicht
hab ich vllt irgendetwas falsch gemacht?

gruß
  Mit Zitat antworten Zitat