Einzelnen Beitrag anzeigen

holle

Registriert seit: 15. Nov 2005
Ort: Uckerland
138 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Rückgabewert aus Query auslesen

  Alt 11. Jan 2008, 21:37
@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
Marcel
  Mit Zitat antworten Zitat