Moin!
Ich habe noch eine Frage zu
mysql abfragen. Und zwar fülle ich ein Listview(VirtualStringTree in diesem Fall) mit sehr vielen Daten aus einer Tabelle, doch das dauert viel zu lange.
Hier mal meine Abfrage:
Delphi-Quellcode:
vstSongs.BeginUpdate;
for I := 0 to Str.Count - 1 do
begin
Application.ProcessMessages;
Song.SongID := StrToInt(Str.Strings[I]);
Song.FileName := dbMain.QueryOne('SELECT "filename" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"');
Song.Artist := dbMain.QueryOne('SELECT "artist" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"');
Song.Title := dbMain.QueryOne('SELECT "title" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"');
Song.Album := dbMain.QueryOne('SELECT "album" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"');
Song.TrackNum := StrToInt(dbMain.QueryOne('SELECT "tracknum" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"'));
Song.Year := dbMain.QueryOne('SELECT "year" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"');
Song.Genre := dbMain.QueryOne('SELECT "genre" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"');
Song.Rating := StrToInt(dbMain.QueryOne('SELECT "rating" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"'));
Song.PlayTime := StrToInt(dbMain.QueryOne('SELECT "playtime" FROM "music" ' +
'WHERE "songid" = "' + Str.Strings[I] + '"'));
AddVSTStructure(vstSongs, nil, Song);
// lbSongs.Items.Add(Str.Strings[I]);
end;
vstSongs.EndUpdate;
vstSongs.SortTree(3, sdAscending, True);
Hat jemand eine Idee wie ich das noch optimieren könnte? Zugegeben, die einzelnen Abfragen sind sehr hässlich.
Ich hoffe ihr könnt mir helfen!
Gruß,
Max