Ich benutze folgenden
SQL-Befehl, um die Anzahl von Datensätzen zu bestimmen:
Code:
SELECT COUNT(*) FROM (SELECT * FROM tblTracks WHERE path = :path);
Wie kann ich jetzt den Wert auslesen, den die Anfrage zurückgibt. Ich habe es so versucht, bekomme aber immer eine Fehlermeldung: "Listindex überschreitet das Maximum (0)"
Delphi-Quellcode:
with ZQuery
do begin
// anzahl bestimmen
SQL.Clear;
SQL.Add('
SELECT COUNT(*) FROM (SELECT * FROM tblTracks WHERE path = :path);');
ParamByName('
path').AsString := tmp.Strings[i];
ExecSQL;
// anzahl prüfen, wenn nicht existiert einfügen
if ZQuery.Fields[0].AsInteger = 0
then begin
SQL.Clear;
SQL.Add('
INSERT INTO tblTracks(Artist, Album, Track, Title, Path) VALUES (:artist, :album, :track, :title, :path);');
ParamByName('
artist').AsString := id3.Artist;
ParamByName('
album').AsString := id3.Album;
ParamByName('
track').AsInteger := strToInt(id3.Track);
ParamByName('
title').AsString := id3.Title;
ParamByName('
path').AsString := tmp.Strings[i];
ExecSQL;
end;
Wie könnte man es anders lösen?
Marcel