willy-goergen 0 Geschrieben 8. Mai 2015 Autor Melden Teilen Geschrieben 8. Mai 2015 (bearbeitet) Da würde ich persönlich lieber die Rechner mit Hilfe PSEXEC.EXE abschalten, die man abschalten kann. Bei den anderen manuell prüfen oder den Prozess killen. Muss ich mir mal überlegen, wie ich das am besten mache. Zwischenzeitlich gab es ja so einige Antworten. Ich war heute schon mal ganz froh, dass die Modernisierung eines Lagers, die intern hauptsächlich ich mit betreue, sehr gut voran geht. Daneben hatte ich dann größtenteils noch ein bisschen "Tagesgeschäft". Mir reichte das dann für heute. IsOpen ist die Funktion zum prüfen. Genau diese hat die Entwicklerin schon erwähnt gehabt und meinte, dass die gestellte Anforderung damit nicht zu realisieren sei, weil man damit jetzt auch nicht so viel anfangen könnte. Eventuell ist der Tipp (in Form des Links) von dir aber sehr gut. Den werde ich vermutlich mal weiter geben. Mit ein bisschen Glück, bekomme ich nach diesem Wochenende auch noch andere Ansätze, die ich evtl. weiter geben kann. Mein Hirn verabschiedet sich so so langsam mal in Richtung Wochenende. Vergesst nicht, dass am Sonntag Muttertag ist. Schenken werde ich nichts... nur mal meine Eltern aufsuchen. Das muss reichen. ;) bearbeitet 8. Mai 2015 von willy-goergen Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 8. Mai 2015 Melden Teilen Geschrieben 8. Mai 2015 (bearbeitet) Genau diese hat die Entwicklerin schon erwähnt gehabt und meinte, dass die gestellte Anforderung damit nicht zu realisieren sei, weil man damit jetzt auch nicht so viel anfangen könnte. Eventuell ist der Tipp (in Form des Links) von dir aber sehr gut. Den werde ich vermutlich mal weiter geben. Mit ein bisschen Glück, bekomme ich nach diesem Wochenende auch noch andere Ansätze, die ich evtl. weiter geben kann. If IsOpen = True then 'Verbindung ist offen ElseIF IsOpen = False then 'Verbindung ist nicht offen, am besten jetzt hier öffnen und einen Hinweis dem Benutzer geben. End if bearbeitet 8. Mai 2015 von Sunny61 Zitieren Link zu diesem Kommentar
willy-goergen 0 Geschrieben 11. Mai 2015 Autor Melden Teilen Geschrieben 11. Mai 2015 (bearbeitet) If IsOpen = True then 'Verbindung ist offen ElseIF IsOpen = False then 'Verbindung ist nicht offen, am besten jetzt hier öffnen und einen Hinweis dem Benutzer geben. End if Ich vermute mal, du beziehst dich auf die Deklaration einer Unterfunktion in einem Teils des Programmcodes? Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing If IsOpen(mCnn) Then mCnn.Close() mCnn.Dispose() End If End Sub Wenn ja, wäre die Lösung nicht wirklich allzu schwer. Andererseits... Gibt es bei der Isopen-Funktion dann eine Art Polling-Funktion? Weil so wie ich das jetzt verstanden hätte, wird der Status nur ein einziges Mal abgefragt und die Verbindung, bzw. das Programm dann geschlossen. Das hier würde meiner Vorgabe, die ich den Entwicklern gemacht habe, nicht entsprechen. Ich habe vorgegeben, dass die Verbindungsversuche nach einem fehlgeschlagenen Versuch n-Mal (wobei "n" dann noch zu definieren wäre) fortzusetzen ist. EDIT: Dafür gibt's wohl dann ne Schleife. Denke ich zumindest gerade... Wenn es aber nicht anders geht, wäre dein Ansatz auch o.k. (bitte meinen Einwurf nicht falsch verstehen... Ich bin sehr froh, wenn man sich über sowas austauschen kann.) Wobei dieser Fehlerfall, soweit ich mich jetzt dazu informiert habe, sowieso weniger kritisch wäre, weil erst gar nichts auf die Datenbank weggeschrieben werden kann. Schlimmer wäre es wohl, wenn ein Fehler während des Schreibzugriffs auf die Datenbank geschieht. bearbeitet 11. Mai 2015 von willy-goergen Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 11. Mai 2015 Melden Teilen Geschrieben 11. Mai 2015 Gibt es bei der Isopen-Funktion dann eine Art Polling-Funktion? Weil so wie ich das jetzt verstanden hätte, wird der Status nur ein einziges Mal abgefragt und die Verbindung, bzw. das Programm dann geschlossen. Du kannst doch jedesmal wenn Du auf die Datenbank zugreifen willst, zuerst prüfen ob die Verbindung steht oder nicht. Wenn nicht, aufbauen und beim xten Fehlversuch den Benutzer informieren. Natürlich muss Gehirnschmalz investiert werden, aber das lohnt sich IMHO. EDIT: Dafür gibt's wohl dann ne Schleife. Denke ich zumindest gerade... If then else ist keine Schleife. Wenn es aber nicht anders geht, wäre dein Ansatz auch o.k. (bitte meinen Einwurf nicht falsch verstehen... Ich bin sehr froh, wenn man sich über sowas austauschen kann.) Wobei dieser Fehlerfall, soweit ich mich jetzt dazu informiert habe, sowieso weniger kritisch wäre, weil erst gar nichts auf die Datenbank weggeschrieben werden kann. Schlimmer wäre es wohl, wenn ein Fehler während des Schreibzugriffs auf die Datenbank geschieht. Wenn ein Schreibzugriff fehl schlägt, kannst Du das wohl nicht verhindern, nur abfangen. Zitieren Link zu diesem Kommentar
willy-goergen 0 Geschrieben 12. Mai 2015 Autor Melden Teilen Geschrieben 12. Mai 2015 (bearbeitet) If then else ist keine Schleife. Mein Gedanke war eine Zählsschleife um das "if then else" zu bauen. int i = 0; for (i < 5) { If IsOpen = True then { break; } ElseIF (IsOpen = False && i < 5) then { i++; } End if } if i = 5 then print 'Verbindung ist nicht offen, am besten jetzt hier öffnen und einen Hinweis dem Benutzer geben. End if Irgendwie so war meine Überlegung... Bin aber auch kein Programmierer. Ich denke, ich werde mich die Tage mal mit den Entwicklern über das Thema unterhalten. Danke erst Mal so weit für die (themenfremde) Hilfe. :) bearbeitet 12. Mai 2015 von willy-goergen Zitieren Link zu diesem Kommentar
willy-goergen 0 Geschrieben 30. Oktober 2015 Autor Melden Teilen Geschrieben 30. Oktober 2015 (bearbeitet) Ich wollte mal kurz Rückmeldung geben, wie ich das Problem mit den Updates am ERP-System gelöst habe. Hat zwar nicht mehr wirklich viel mit Skripting zu tun, aber gut... Muss man sehen, ob es sich so bewährt. Das ERP-System wurde bis vor kurzem über ausführbare Dateien gestartet, die in einer Netzwerkfreigabe lagen. Diese ausführbaren Dateien mit den Programmmodulen können aber im Prinzip überall liegen, auch lokal. In der Regel mussten immer nur die ausführbaren Dateien bei Aktualisierungen ausgetauscht werden. Dafür musste ich alle Benutzer vorher rausschmeißen, weil sie die Datei(en) blockiert haben. Von daher habe ich mir gedacht, ich schiebe die Dateien bei jeder Benutzeranmeldung in ein Verzeichnis, das auf den Clients sowieso lokal durch die Installationsroutine des ERP-Systems angelegt wird. Realisiert habe ich das mit Robocopy und einem Anmeldeskript, das ich per GPO verteile. Es werden immer nur veränderte Dateien kopiert. Sollte ich mal ein Modul (eine ausführbare Datei) aktualisieren müssen - mehr ist es in der Regel nicht - kann ich das jetzt ganz in Ruhe machen. Die Clients holen sich das Update dann selbst bei der nächsten Anmeldung. Programmseitig haben die Entwickler immer noch nichts gemacht, obwohl es oft genug gesagt wurde. Sollte wirklich mal die Verbindung zur SQL-DB abbrechen, stürzt das Programm halt ab. bearbeitet 30. Oktober 2015 von willy-goergen Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.