< als Parameter übergeben
-
Muss der Winkel nicht in die andere Richtung zeigen?
-
Du könntest auch CreateProcess() verwenden.
STARTUPINFO si = {0}; si.cb = sizeof( STARTUPINFO ); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = SW_SHOW; PROCESS_INFORMATION pi; CreateProcess( NULL, TEXT("c:\\mysql\\bin\\mysql.exe < adressen.sql"), NULL, NULL, TRUE, 0, 0, 0, & si, & pi );
-
Und noch mal. Ich bin der Meinung der Winkel ist falsch. Nur so:
C:\Dokumente und Einstellungen\Administrator>dir /b > test.txt
landet der Verzeichnisinhalt in der Datei test.txt.
-
Ich denke mal, Andidreas wollte nicht die Ausgabe, sondern die Eingabe umleiten.
-
Luckie: Kommt darauf an ob Du etwas von der Standardausgabe in eine Datei umleiten möchtest oder von einer Datei in die Standardeingabe...
-
Äh, meines Wissens funktioniert das mit CreateProcess und so gar nicht wie oben vorgeschlagen. Hier müssen selber die Pipes (stdin und stdout) der Child-Anwendung umgeleitet werden... hatte man ne Website zu dem Thema in der MSDN... leider hab ich den Link grad ned zur hand. aber auch im WinAPI-Forum finden sich hinweise.
-junix
-
Bevor du das mit der PIPE machst würde ich die MYSQLAPI nehmen, das File normal einlesen und einen Execute auf die DB ausführen.
-
Also beim mir im Programm mach ich das so ohne Probleme:
void DB_ACTIONS::restore(AnsiString dateiname) { // Syntax: mysql -u root -D test_pck <nocheinbackup.bak AnsiString befehl = (AnsiString)"mysql -u root -D "+einstellungen->datenbank_datenbank -> Text+ "<"+dateiname; if(system(befehl.c_str()) > 0)Application->MessageBox("Fehler beim Wiederhestellen des Backups"); else { Form1 -> aktualisiere_navigation(); Application->MessageBox("Backup erfolgreich"); } }
Also mit system... hast du allerdings die Dos-Kiste ungefragt offen...
-
Scheint aber das einzige zu sein, was funktioniert. Aber nur mit voherigem Verzeichniswechsel.
Gruß
Andidreas
-
junix schrieb:
Äh, meines Wissens funktioniert das mit CreateProcess und so gar nicht wie oben vorgeschlagen.
Sorry, ich dachte, dass er das <-Zeichen als Parameter an mysql.exe übergeben will. (Steht eigentlich so auch in der Überschrift)