ich bin gerade dabei mich in die Datenbanknutzung einzuarbeiten und habe jetzt ein seltsames Problem mit "TProcess" oder auch "ExectuteProcess".
Um eine Datenbanksicherung durchzuführen, kann man das Programm "mysqldump.exe" ausführen und es wird ein Backup erstellt.
Führe ich also "cmd" aus und schreibe dann "mysqldump.exe --opt Vigema > C:\Vigema03\Vigema.sql -uroot -p*** -hlocalhost" wird mir die Backup-Datei erstellt.
Will ich das ganze in Lazarus ausführen schreibe ich also:
Code: Alles auswählen
aProc:=TProcess.Create(Nil);
aProc.Executable:='mysqldump.exe';
aProc.Parameters.Add('--opt');
aProc.Parameters.Add('Vigema');
aProc.Parameters.Add('>');
aProc.Parameters.Add('C:\Vigema03\Vigema.sql');
aProc.Parameters.Add('-uroot');
aProc.Parameters.Add('-p***');
aProc.Parameters.Add('-hlocalhost');
Übergebe ich statt dessen
Code: Alles auswählen
aProc.Parameters.Add('--help');
Der gleiche Fehler tritt bei
Code: Alles auswählen
ExecuteProcess('mysqldump.exe',' --opt Vigema > C:\Vigema03\Vigema.sql -uroot -p*** -hlocalhost',[]);
Ich habe mir jetzt damit geholfen, dass ich die Kommandozeile "mysqldump.exe --opt Vigema > C:\Vigema03\Vigema.sql -uroot -p*** -hlocalhost" in eine "speichern.bat" geschrieben habe und diese mittels aProc.execute aufrufe. Das funktioniert!
Ich habe gefühlte 100mal meine Rechtschreibung überprüft, mit und ohne Apostrophe probiert, keine Änderung! Kann mir jemand dieses Verhalten erklären bzw. mir sagen was ich falsch mache oder ich anders machen muss?!
Danke