Moin Moin
ich habe da ein kleines Problem mit einer Funktion die ich zusammen gewürfelt habe
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var cPfad : string;
cZielPfad : string;
aListe : TStrings;
n : integer;
cTag : String;
cMonat : String;
cJahr : String;
cMD5 : String;
cSQL : String;
cDateiPfad : String;
zListe : TZQuery;
begin
cPfad := 'o:\';
cZielPfad := 'd:\bilder\';
aliste := TStringList.Create;
n := 1;
Form1.zQuery1.SQL.Clear;
Form1.zQuery1.SQL.Add('SELECT md5 FROM PfadBilder Group by md5');
Form1.zQuery1.Open;
zListe := Form1.zQuery1;
zListe.First;
While (Not zListe.Eof) Do begin
inc(n);
cMD5 := zListe.FieldByName('MD5').asString;
cDateiPfad := DB_PFAD(cMD5);
cTag := FormatDateTime('DD', GetTime(cDateiPfad));
cMonat := FormatDateTime('MM', GetTime(cDateiPfad));
cJahr := FormatDateTime('YYYY', GetTime(cDateiPfad));
if not DirectoryExists(cZielPfad+cJahr) then begin
MkDir(cZielPfad+cJahr);
end;
if not DirectoryExists(cZielPfad+cJahr+'\'+cMonat) then begin
MkDir(cZielPfad+cJahr+'\'+cMonat);
end;
if not DirectoryExists(cZielPfad+cJahr+'\'+cMonat+'\'+cTag) then begin
MkDir(cZielPfad+cJahr+'\'+cMonat+'\'+cTag);
end;
CopyFile(PChar(cDateiPfad), PChar(cZielPfad+cJahr+'\'+cMonat+'\'+cTag+'\'+inttostr(n)+'.jpg'), true);
zListe.Next;
end;
end;
tja hier rufe ich die Funktion DB_PFAD auf und hier ist auch das problem
Delphi-Quellcode:
function DB_PFAD(cString : String): String;
var cSQL : String;
begin
Form1.zQuery1.SQL.Clear;
cSQL := ' SELECT pfad FROM PfadBilder '
+ ' Where md5 = "'+ cString
+ '" ORDER By geaendert asc'
+ ' Limit 1';
Form1.zQuery1.SQL.Add(cSQL);
Form1.zQuery1.Open;
Result := Form1.zQuery1.FieldByName('pfad').asString;
end;
wenn ich alles ausklammer läuft er die zListe durch
wenn ich die funktion DB_PFAD aufrufe ist er beim ersten Durchlauf fertig also muss da muss irgendwas in der DB_PFAD funktion die
Query zListe auf EOF setzen
weil dann bricht er einfach ab
aber ich weiss nicht warum
weil er muss da mindestens 40 000 mal durchgehen
tut er aber nicht sondern wenn er einmal DB_PFAD ist zListe auf EOF
hmm kann da mal jemand einen blick reinwerfen
ich weiss nicht wo der fehler ist