RunProgram Problem mit mysqldump -gelöst

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Andreas21
Beiträge: 390
Registriert: 30.08.2004 09:05
Computerausstattung: Desktop
Windows 10 Pro x64
CPU: AMD Ryzen 5 2600 3.40 GHz
Ram: 16GB RAM
Grafik: NVIDA Geforce 1060
PB: 5.72 X86/X64
Wohnort: Heidelberg

Re: RunProgram Problem mit mysqldump

Beitrag von Andreas21 »

So ich habs unter Linux jetzt getestet und der Code, geht wenn man das so macht.
Linux Version Debian 5

Code: Alles auswählen

prog.s="sh"

par.s="-c "+Chr(34)+"/opt/lampp/bin/mysqldump -u root --opt --all-databases > dbdata.sql"+Chr(34)
runner= RunProgram(prog,par,"",#PB_Program_Wait); auf keinen Fall ProgramHide
;da die Umleitung dann nicht funktioniert und in die Console ausgegeben wird und damit
;das verstecken gerade das umgekehrte erwirkt.
MessageRequester("ok","nochmal anders")

;mit folgenden kann die Ausgabe abgefangen und entsprechend bearbeitet werden (z.B. als
;datei weggeschrieben oder was auch immer
 par.s="-c "+Chr(34)+"/opt/lampp/bin/mysqldump -u root --opt --all-databases"+Chr(34)
 Debug prog+" "+par
 runner= RunProgram(prog,par,"",#PB_Program_Hide|#PB_Program_Open|#PB_Program_Read)
 While ProgramRunning(runner)
   line.s=ReadProgramString(runner)
   If FindString(line,"CREATE",0)
     Debug line
   EndIf
Wend
CloseProgram(runner)

MessageRequester("","schon fertig")
Ohne chr(34) bekomme ich den fehler "/opt/lampp/bin/mysqldump Datei oder Verzeichniss nicht gefunden"

Unter windows leufts jetzt auch ohne Probleme. Danke^^
Windows 10 x64 Pro - PB 5.61 X64 / x32 - PB 4.6 x32
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3857
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: RunProgram Problem mit mysqldump -gelöst

Beitrag von bobobo »

na endlich :D

hab das thema etwas verschoben
‮pb aktuell5.7 - windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Rothammel
Beiträge: 53
Registriert: 17.09.2006 17:22

Re: RunProgram Problem mit mysqldump -gelöst

Beitrag von Rothammel »

mit 5.71:

Code: Alles auswählen

mysqldump_id.i = RunProgram("backup\mysqldump.exe", " -h " + *mysqldump\ip_server + " -u " + *mysqldump\benutzername + " -p" + *mysqldump\passwort + " -c --add-drop-table --add-locks --quick --lock-tables " + datenbankname.s, "", #PB_Program_Open | #PB_Program_Read | #PB_Program_Hide)
  If mysqldump_id.i
    If CreateFile(0, *mysqldump\pfad + "Backup Auftragsverwaltung\" + FormatDate("%dd.%mm.%yyyy", Date()) + " sqldump.sql")
      While ProgramRunning(mysqldump_id.i)
        If AvailableProgramOutput(mysqldump_id.i)
          Output.s = ReadProgramString(mysqldump_id.i)
          WriteStringN(0, Output.s)
        EndIf
      Wend
      CloseFile(0)
    EndIf
    
    CloseProgram(mysqldump_id.i) ; Schließt die Verbindung zum Programm
  EndIf
Antworten