@DeddyH
Funktioniert leider nicht. Fehlermeldung bim Versuch einen neuen Datensatz einzufügen: "Database locked"
@mkinzler
ZQuery.Prepare und ZQuery.Text gibt es bei den Zeos-Komponenten nicht. Habe es jetzt mal so versucht aber leider ohne Erfolg: "
SQL logic error or missing database"
Delphi-Quellcode:
procedure TfrmMain.Button1Click(Sender: TObject);
var
i: integer;
anzahl: integer;
source: string;
tmp: TStringList;
stream: TFileStream;
id3: TId3v2Tag;
begin
tmp := TStringList.Create;
id3 := TId3v2Tag.Create;
SelectDirectory('Ordner auswählen', '' , source);
GetFilesInDirectory(source, '*.mp3', tmp, true, true);
ZQuery.SQL.Clear;
ZQuery.SQL.Add('SELECT COUNT(*) FROM tblTracks WHERE path = :path);');
ZQueryTmp.SQL.Clear;
ZQueryTmp.SQL.Add('INSERT INTO tblTracks(Artist, Album, Track, Title, Path) VALUES (:artist, :album, :track, :title, :path);');
for i := 0 to (tmp.Count - 1) do begin
stream := TFileStream.Create(tmp.Strings[i], fmOpenRead);
id3.ReadFromStream(stream);
ZQuery.ParamByName('path').AsString := tmp.Strings[i];
ZQuery.Open;
anzahl := ZQuery.Fields[0].AsInteger;
if Anzahl = 0 then begin
ZQueryTmp.ParamByName('artist').AsString := id3.Artist;
ZQueryTmp.ParamByName('album').AsString := id3.Album;
ZQueryTmp.ParamByName('track').AsInteger := strToInt(id3.Track);
ZQueryTmp.ParamByName('title').AsString := id3.Title;
ZQueryTmp.ParamByName('path').AsString := tmp.Strings[i];
ZQueryTmp.ExecSQL;
end;
end;
end;
Marcel