![]() |
Re: Problem mit CreateProcess
Na das hier:
Zitat:
|
Re: Problem mit CreateProcess
Zitat:
|
Re: Problem mit CreateProcess
Hast Du mal geschaut ob dein Aufruf auf einer Console (Eingabeaufforderung) mit der Pipe Umleitung ">" funktioniert ?
@Olli das der Code von turboPASCAL falsch kann ich nicht sagen, habe da gerade eine kleine Merkwürdigkeit festgestellt. // Edit: Zitat:
|
Re: Problem mit CreateProcess
Ich habe nie behauptet, dass ein Code von euch nicht funktioniert. Ich verstehe eure Funktionen und Prozeduren vielleicht nicht komplett, ich kann aber sehr wohl erkennen, dass ihr mit dem Befehl ansich nichts macht. Ich sage doch die ganze Zeit, dass es an CreateProcess liegen muss. Dahin übergebt ihr schließlich die "CommandLine"!
Und ja, mit der Befehl funktioniert in der Eingabeaufforderun (CMD) perfekt Zitat:
Eigentlich weis ich, wie ich den Fehler umgehen kann, allerdings möchte ich das nicht. Die Lösung liegt ganz einfach darin die Gänsefüsschen an "web1db1" und "D:\download\2005-08-26 14-59\web1db1.sql" wegzulassen. Allerdings kann ich das nicht, da in dem Pfad eine Leerzeile ist, die da auch bleiben soll. Und schließlich funktioniert der Befehl mit Gänsefüsschen in der CMD! |
Re: Problem mit CreateProcess
Hm... :gruebel: warum machst du nicht eine Batchfile mit folgendem Aufruf:
Code:
Ich hab k.A. von MySQL was soll den das ausgeben bzw. Umleiten ?
@echo off
"C:\Programm[b][...][/b]\mysqldump.exe" -hlocalhost -uuser -ppasswort --opt web1db1" > "D:\download[b][...][/b]\web1db1.sql" pause Wenn Du das ">" weglässt bekommst du doch deine Ausgabe in das Memo oder so. Oder gibt es dan eine extra "Fertig" Meldung ? |
Re: Problem mit CreateProcess
@Patrick: Wenn du es wie in deinem Beitrag von 15:10 machst, kann es nicht funktionieren, weil das Pipen (mit >) nur von CMD.EXE unterstützt wird. Ansonsten müßte mysqldump expliziten Support dafür mitbringen. Es wird also nur gehen über STDOUT, STDERR usw. die Daten auszulesen (siehe turboPASCALs Code).
@turboPASCAL: Verstehe ich auch nicht, dein Code sieht absolut plausibel aus ... wieso da jetzt nicht die Konsolenausgabe enthalten sein soll? :gruebel: |
Re: Problem mit CreateProcess
Hm.... :gruebel:
@Olli Also bei meinen Tests mit der Pipe-Umleitung (mit CMD.EXE) bekam ich noch keine Probleme es muss also event. an der mysqldump.exe liegen. Leider hab ich kein SQL und kann es nicht austesten woran es liegt. Aus Testzwecken würde ich auch mal kurze Dateinamen (8.3) benutzen und die Ausfhürungszeichnen nicht verwenden. Oder alles in die Batchfile setzen und diese dann ausführen, wenn wie gesagt es auf der CMD funktionieren soll. Dann kann man ja immer noch die Ausgabe umleiten die von der Batch kommen. Was ich mich Frage ist warum die Fehlermeldung (mysqldump: Couldn't find table: ">") kommt. Das weist darauf hin das er als Parameter eine Tabelle erwartet aber " > " findet. Kann man noch in den Code einbauen... :gruebel: :zwinker: ![]()
Delphi-Quellcode:
[...] while (I < Bread) do
begin case Buffer^[I] of #0: inc(I); #7: begin {PC-Beep ^G} inc(I); Windows.Beep(800, 150); Str := Str + '^'; end; #10: [...] |
Re: Problem mit CreateProcess
Nur mal so ne Vermutung:
Das hängt irgendwie an den '"'. Versuch mal
Code:
Also alles vor und nach dem '>' in '"' setzten.
'"cmd \c [...]" > "..."'
Und wenns mit der Pipe trotzdem noch Probleme gibt: mysqldump hat IMHO ne "eingebaute Pipe". D.H. über irgend n Parameter(bitte selbst nachschlagen) kann man die Ausgabe in ne Datei umleiten. Man braucht also kein cmd dazu... mfg Christian P.S.: Es wäre vielleicht besser cmd per EnvironmentVariablen zu bestimmen. cmd gibts nämlich nur in der NT-Schiene. Ansonsten musst du Command.com nehmen... |
Re: Problem mit CreateProcess
Ja, natürlich hängt es an den "", aber ich kann diese nicht weglassen, da in den Pfaden Leerstellen drin sind.
Also mit
Delphi-Quellcode:
geht es nicht: "System Kann die angegebene Datei nicht finden"
'"cmd \c [...]" > "..."'
und mit
Delphi-Quellcode:
gibt's wiedermal die selbe Fehlermeldung: Der Befehl "C:\Programme\MySQL\MySQL" ist entweder falsch geschrieben oder
'cmd \c "[...]" > "..."'
konnte nicht gefunden werden. |
Re: Problem mit CreateProcess
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Patrick,
also wenn es dir nur darum geht, ein Dump zu erstellen, kannst due gerne meine Komonente im Anhang benutzen. Da benutzte ich die gleiche Methode wie du, eben über mysqldump.exe. Hat auch ganz gut geklappt. Allerdings werte ich auch keine Rückmeldung von mysqldump.exe, das mit Dateinamen und Leerzeichen klappt aber. Am besten du schaust dir mal die Methode RunProcess in der Komponente an. Ist nicht von, allerdings ist mir die Quelle unbekannt. Aber mein Tipp: nutze die ![]() edit: Hatt ich doch glatt den Anhang vergessen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz