Announcement

Collapse
No announcement yet.

Feedback, wenn Skrip nicht erfolgreich ausgeführt wird

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Feedback, wenn Skrip nicht erfolgreich ausgeführt wird

    Hi,

    ich habe ein Skript entwickelt, dass mir aus meinem ERP-System jeden nächtens die Stammdaten aktualisiert.

    Dieses Skript wird aufgerufen durch die Aktualisierung.bat, mit folgendem Inhalt.

    Code:
    sqlcmd -S PC206SQL\SQL2008EXPR -d Test -i "\\server01\Unternehmensdaten\Test\Aktualisierung.sql"
    Diese bat wird durch die geplanten Tasks auf einer extra für solche Sachen eingerichtete Maschine im NW ausgeführt.

    Das klappt auch alles wunderbar.

    Nun habe ich allerdings spaßenshalber mal
    Code:
    sqlcmd -S PC206SQL\BLABLA -d Test -i "\\server01\Unternehmensdaten\Test\Aktualisierung.sql"
    eingegeben, d.h. einen Server, der gar nicht existent ist.

    Leider läuft der Task dann einfach durch ohne mir am nächsten Morgen ein direktes Feedback zu geben. Einzige Lösung, die ich im Moment sehe, ist die Einarbeitung einer PAUSE in die bat.

    Das möchte mein Admin aber nicht tun, weil er dann die Meldungen von jedem Tag immer wegklicken muss.

    WAS KANN ICH TUN?????????????????????

  • #2
    Hallo,

    also ich habe mir angewöhnt, immer erst mal einen Blick in die Doku zu werfen und gerade die zum SQL Server ist gut & umfangreich.

    Bei SqlCmd kannst Du noch den -o Parameter für ein Output-File angeben, in der dann auch Fehlermeldungen landen.

    =>
    [highlight=code]sqlcmd -S PC206SQL\BLABLA -d Test
    -i "\\server01\Unternehmensdaten\Test\Aktualisierung. sql"
    -o "\\server01\Unternehmensdaten\Test\AktualisierungE rgebnis.txt"[/highlight]

    Dort wirst Du dann eine Timeout-Meldung finden.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      OK, Kritik verstanden , Danke!

      Comment


      • #4
        OK, hab das eben mal durchexerziert:

        sqlcmd -S PC206SQL\SQL2008EXPRRRRR -d Schimmel
        -i "\\server01\Unternehmensdaten\WGA_Schimmel\Befehls zeile\Schimmel_Aktualisierung_Wodisdaten.sql"
        -o "\\server01\Unternehmensdaten\WGA_Schimmel\Befehls zeile\Aktualisierung_Ergebnis.txt"
        Ich habe hier bewusst einen Fehler eingefügt, der Server heißt: PC206SQL\SQL2008EXPR.

        Eine Outputdatei wird aber nicht erzeugt.

        Comment


        • #5
          Eine Output-Datei wird mit dem -o Parameter immer erzeugt, auch wenn es nichts zum ausgeben gibt.
          Darf der Account, unter dem das ausgführt wird, auf das Share schreiben?

          Ich hatte es naturlich getestet und bei mir kommt folgendes raus.

          HResult '0xFFFFFFFF', Ebene '16', Status '1'
          'SQL-Netzwerkschnittstellen: Fehler beim Suchen des angegebenen Servers/der angegebenen Instanz [xFFFFFFFF]. '
          Sqlcmd: Fehler: Microsoft SQL Native Client : Fehler beim Herstellen einer Verbindung zum Server. Bei einer Verbindung zu SQL Server 2005 kann dieser Fehler dadurch verursacht werden, dass SQL Server unter den Standardeinstellungen keine Remoteverbindungen zulässt..
          Sqlcmd: Fehler: Microsoft SQL Native Client : Anmeldungstimeout abgelaufen.
          Olaf Helper

          <Blog> <Xing>
          * cogito ergo sum * errare humanum est * quote erat demonstrandum *
          Wenn ich denke, ist das ein Fehler und das beweise ich täglich

          Comment


          • #6
            Ich habe es unter meinem Account ausgeführt und mit diesem Account habe ich im angegebenen NW-Pfad ("\\server01\Unternehmensdaten\WGA_Schimmel\Befehl szeile) VOLLZUGRIFF.

            Comment


            • #7
              Sorry, Dein Vorschlag funzt einwandfrei. Ich hatte in der Bat (also im Editor) zur besseren Übersicht mit Enter gearbeitet. Das hat hier offensichtlich das Problem verursacht. Ich habe nun alles hintereinanderweg geschrieben und nun passt's.

              ***D*A*N*K*E***

              Hätte aber trotzdem nochmal eine Frage dazu:

              Gibt es in diesem Zusammenhang eine Möglichkeit, die Outputdatei nicht immer nur für das letzte Mal neu zu erstellen, sondern sie fortlaufend zu führen (mit Datumsangabe), um evtl. zu lokalisieren, ab wann das Skript nicht mehr durchgelaufen ist, sprich:

              ****OUTPUT-DATEI********

              25.11.2009
              Succesfull

              26.11.2009
              Error

              27.11.2009
              Error

              28.11.2009
              Error

              ***********************
              Zuletzt editiert von joghurtjens; 25.11.2009, 15:10.

              Comment


              • #8
                Laut Doku (!) wird die Ausgabe-Datei immer mit 0 Bytes initialisiert und ich habe keinen Parameter gesehen, der das verhindern.

                Lass die Datei von der BAT durch in eine Namen mit Tagesdatum umkopieren/-benennen, dann hast Du die für jeden Tage eine Datei.
                Olaf Helper

                <Blog> <Xing>
                * cogito ergo sum * errare humanum est * quote erat demonstrandum *
                Wenn ich denke, ist das ein Fehler und das beweise ich täglich

                Comment


                • #9
                  OK, dann so.

                  sqlcmd -S PC206SQL\SQL2008EXPR -d Schimmel -i "\\server01\Unternehmensdaten\WGA_Schimmel\Befehls zeile\Schimmel_Aktualisierung_Wodisdaten.sql" -o "\\server01\Unternehmensdaten\WGA_Schimmel\Befehls zeile\Schimmel_Aktualisierung_Ergebnis_%date%.txt"

                  Comment

                  Working...
                  X