Hallo,
ich lasse über den WindowsScriptingHost einen pg_dumpall mit der Option -v ausführen. Die Standardfehlerausgabe ist aber bis zur vollständigen Erstelung des Dumps leer. Ich lasse sie aller 2 Sekunden auslesen.
Ich das normal, oder muss ich noch etwas anschalten um die Daten in Echtzeit zu bekommen.![]()
Die Meldungen werden von pg_dump und pg_dumpall sofort ausgegeben.
Keine Ahnung, was das Framework, was du da verwendest, damit anstellt. Bist du dir sicher, dass überhaupt die Meldungen dort ankommen, wo du sie hinhaben willst?
.o0( Was auch immer WindowsScriptingHost ist ... )
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Windows Script Host – Wikipedia
In kurz: das was Du als $SHELL kennst. Natürlich nicht nach dem KISS - Prinzip (Keep it small and simple) a la *NIX, sondern mit dem üblichen Kleinweich-Gedöhns.
Zur Frage: vermutlich puffert WSH die Ausgabe irgendwo zwischen. Vielleicht in Redmond ...
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Vielen Dank für die kompetenten Antworten. Leider komme ich mit Shell in VB nicht an die Rückgabewerte, das war mein erster Versuch. Über den WindowsScriptingHost komme ich ran.
Ich brauche es nur um dem Benutzer während der Datensicherung einen Fortschritt zu zeigen, leider dauert er ja doch eine Weile...
PS: Oder kennt jemand eine funktionierende Lösung für VB
Geändert von MarlonGnauck (18.02.2010 um 17:30 Uhr)
Gut, ich habe gerade die Lösung alleine gefunden. Sollte jemand mal das selbe Problem haben werde ich Ihm gern helfen...
Habe auch eine Lösung wie ich das Passwort ohne eine Datei anzulegen übegeben kann...
Nun, du hast hier öffentlich nach Hilfe gefragt.
Wieso soll dich nun jemand privat kontaktieren, wieso kannst du die Lösung nicht einfach hier posten und der nächste mit dem Problem findet die Lösung sofort?
Xandrian: Kurz gesagt: Du hast ein falsches Konzept und willst nicht auf ads hören
Jetzt NEU: PostgreSQL - Datenbankpraxis für Anwender, Administratoren und Entwickler
PostgreSQL Service & Support
Weil mir nach solchen Antworten nicht sicher bin ob das gewünscht istWieso soll dich nun jemand privat kontaktieren, wieso kannst du die Lösung nicht einfach hier posten und der nächste mit dem Problem findet die Lösung sofort?
Aber ich mal nicht so... Habe zu lange nach einer Lösung gesucht.In kurz: das was Du als $SHELL kennst. Natürlich nicht nach dem KISS - Prinzip (Keep it small and simple) a la *NIX, sondern mit dem üblichen Kleinweich-Gedöhns.
Code:Public Sub MakeSQLBackup(ByVal sBackupFile As String) Dim ShellWSH As wshShell Dim EnvWSH As Object Dim ExecWSH As WshExec Dim Output As String 'Aufruf zusammenbasteln Eingabe = Eingabe & "C:\Programme\PostgreSQL\8.4\bin\pg_dumpall.exe " Eingabe = Eingabe & "--host Servername " Eingabe = Eingabe & "--port Port " Eingabe = Eingabe & "--username Postgres " Eingabe = Eingabe & "--verbose " ' Mit dieser Option wird pg_dumpall diverse Fortschrittsmeldungen auf die Standardfehlerausgabe schreiben. Eingabe = Eingabe & "--inserts " 'Sichere die Daten als INSERT-Befehle (anstatt COPY). Das macht die Wiederherstellung sehr langsam, aber es macht die Archive besser auf andere SQL-Datenbankprodukte portierbar. 'Eingabe = Eingabe & "--column-inserts " 'Sichere die Daten als INSERT-Befehle mit ausdrücklichen Spaltennamen (INSERT INTO tabelle (spalte, ...) VALUES ...). Das macht die Wiederherstellung sehr langsam, aber es ist notwendig, wenn Sie die Spaltenreihenfolge verändern wollen. Eingabe = Eingabe & "--clean " 'Gib SQL-Befehle aus, um die Datenbanken zu entfernen bevor Sie erzeugt werden. Eingabe = Eingabe & "--file """ & sBackupFile & """ " Set ShellWSH = CreateObject("Wscript.shell") Set EnvWSH = ShellWSH.Environment("PROCESS") EnvWSH("PGPASSWORD") = "geheim" Set ExecWSH = ShellWSH.Exec(Eingabe) Do Until ExecWSH.StdErr.AtEndOfStream Output = ExecWSH.StdErr.Line & " " & ExecWSH.StdErr.ReadLine Debug.Print Output DoEvents Loop Debug.Print ExecWSH.StdErr.Line End Sub
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen