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ß