< 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)


Anmelden zum Antworten