hi,
habe nicht die tabellen sondern nur die werte dieser in einer txt und ini datei abgelegt in der hoffnung das es dadurch schneller geht.
momentan sieht meine abfrage so aus.
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
sqlqrez.Active := False;
sqlqrez.SQL.Clear;
sqlqrez.SQL.Add('SELECT Count(name) FROM rezepte WHERE kategorie in ("'+namen.Strings[i]+'")');
sqlqrez.Active := True;
with tv_rezept.Items do
begin
t := AddChild(nil,namen.Strings[i] + ' ('+sqlqrez.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.Active := False;
sqlqrez.SQL.Clear;
sqlqrez.SQL.Add('SELECT Count(name) FROM rezepte WHERE unterkat in ("'+unterkat.Strings[a]+'") AND kategorie in ("'+namen.Strings[i]+'") GROUP BY unterkat');
sqlqrez.Active := True;
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;
wie oben beschrieben ist das problem das es ziemlich lange braucht alle daten zu laden die aich abfrage.
gruß