| |
Visual-Basic EinsteigerAktive Verbindungen trennen | | | Autor: I.V. | Datum: 17.10.17 09:12 |
| Hallo zusammen,
ich habe über VB eine Verbindung (ADO) zu einer Access DB.
Da einige Benutzer das Programm nicht beenden, bleiben Verbindungen aktiv und die Wartung der DB kann nicht durchgeführt werden.
Kann mir jemand sagen, wie ich diese Verbindungen trennen kann?
Danke und Gruß Ingo
Wer aufhört sich zu verbessern, hört auf gut zu sein. | |
Re: Aktive Verbindungen trennen | | | Autor: Manfred X | Datum: 17.10.17 10:04 |
| Hallo!
Du könntest in Dein Programm eine Routine einbauen, die den
Zeitpunkt der letzten Aktivität des Benutzers registriert.
Bleibt der Benutzer eine gewisse Zeit inaktiv, wird eine Meldung
angezeigt, die das automatische Trennen der DB-Verbindung ankündigt.
Bleibt der Benutzer weiterhin für einen gewissen Zeitraum inaktiv,
wird die Verbindung zur DB geschlossen. | |
Re: Aktive Verbindungen trennen | | | Autor: Manfred X | Datum: 17.10.17 10:21 |
| Aufwendig muß das nicht sein.
Du erstellst in dem oder den DB-bezogenen Formular(en),
eine globale Date-Variable "LastUserAction".
Die Controls weisen in den Routinen der entsprechenden Events (z.B. Click,
Changed oder KeyPreview der Form) die aktuelle Zeit zu: LastUserAction = Now
Im Formular läuft ein Timer, in dessen Tick-Event einmal pro Minute
die Zeitdifferenz zwischen Now und LastUserAction bestimmt wird.
Ist die Differenz größer als x1-Minuten wird ein Label sichtbar gemacht,
dessen Caption das Schließen ankündigt - sonst wird es unsichtbar.
Ist die Differenz größer x2-Minuten, wird die Verbindung getrennt (x2 > x1).
Beitrag wurde zuletzt am 17.10.17 um 10:27:39 editiert. | |
Re: Aktive Verbindungen trennen | | | Autor: I.V. | Datum: 17.10.17 10:36 |
| Hallo Manfred,
naja, so dachte ich mir das auch..
Da es einige Fenster gibt, ist das dann doch etwas Arbeit.
Ich muss die Tage wohl eh mal ran und das Projekt auch Win 10 umstellen.
Weißt du, ob es hier Probleme gibt?
Danke und Gruß Ingo
Wer aufhört sich zu verbessern, hört auf gut zu sein. | |
Re: Aktive Verbindungen trennen | | | Autor: Manfred X | Datum: 17.10.17 10:47 |
| Im Prinzip sollte es keine nennenswerten Probleme geben.
VB6-Programme sind unter W10 lauffähig.
Ob das auch für alle referenzierten Drittanbieter-Bibliotheken gilt,
muß geprüft bzw. ausprobiert werden. | |
Re: Aktive Verbindungen trennen | | | Autor: Franki | Datum: 18.10.17 02:50 |
| Hallo Ingo,
die elegante Möglichkeit hat dir ManfredX ja schon beschrieben.
Bei einem Kunden bin ich aber auch schon einen anderen Weg gegangen: Die Voraussetzung war, dass Wartungsarbeiten an der DB sowieso nur dann durchgeführt werden wenn niemand mit der Anwendung arbeitet, also nach Feierabend oder am Wochenende z.B.
Bei der Anwendung habe ich im Startformular die Verbindung zur DB hergestellt und bei Beenden der Anwendung wieder getrennt. Es wurde eine Uhrzeit festgelegt (und per Timer überprüft) an der die Verbindung zur DB definitiv getrennt wird und der User einen Hinweis bekommt das dem so ist sollte die Anwendung noch offen sein. So sieht der User am nächsten Tag, dass die Verbindung zur DB geschlossen worden ist, bekommt eine Schaltfläche mit der er die Verbindung wieder herstellen kann.
Dann bruchst du das nicht in jedes einzelne Formular einzubauen welches datenbankrelevant ist.
Ob das für dich eine Möglichkeit ist weiß ich nicht, bei meinem Kunden hat es gepasst.
Gruß
Frank | |
Re: Aktive Verbindungen trennen | | | Autor: I.V. | Datum: 18.10.17 06:52 |
| Hallo Manfred, hallo Frank,
danke für Hinweise.
Ich habe jetzt eine Mischung aus Beiden umgesetzt.
Soll heißen, dass beim öffnen der jeweiligen Formulare ein Zeitstempel gesetzt wird.
Nach einer definierten Zeit kommt ein Frame mit der Info über die bevorstehende Trennung.
Wird hierauf nicht reagiert, wird die Verbindung getrennt und eine entsprechende Info angezeigt.
Außerdem kommt ein Button zum neu Verbinden.
Außerdem geht ein Eintrag in die Logdatei.
Ich habe diesen Weg gewählt, weil hier dann wohl sonst der Ein oder Andere das Programm nicht mehr schließt, weil er ja weiß, dass es selbst aus geht.
Mal schauen wie es läuft.
Gruß Ingo
Wer aufhört sich zu verbessern, hört auf gut zu sein. | |
Re: Aktive Verbindungen trennen | | | Autor: Franki | Datum: 19.10.17 02:45 |
| Hallo Ingo,
Zitat: | | Ich habe diesen Weg gewählt, weil hier dann wohl sonst der
Ein oder Andere das Programm nicht mehr schließt, weil er ja
weiß, dass es selbst aus geht. | |
Ja das ist durchaus der Fall, aber ob ein paar Mitarbeiter dein Programm jetzt sowieso schon nicht beenden (sonst hättest du das Problem ja nicht) oder ob sie es nicht machen weil es sich von selbst beendet spielt eigentlich keine Rolle, da du ja jetzt die Connection zur DB bzw. das Programm beendest.
Das mit der Log Datei würde eher erzieherische Maßnahme bedeuten um die User zu überreden das Programm selbst zu beenden.
Ob sich das lohnt ist ja eine andere Frage, denn oft ist es ja auch aus ganz anderen Gründen ärgerlich wenn User ihre Rechner einfach laufen lassen obwohl es nicht notwendig ist über einen längeren Zeitraum
Fängt an beim Stromverbrauch, geht über einzuspielende Updates von Windows oder anderen Programmen bis hin zu Anwendungen die evtl. auch Wartungsarbeiten benötigen die dann nicht gemacht werden können.
Das könnte der Admin des Netzwerks auch automatisieren bei Bedarf. Aber das ist ein anderes Thema...
Gruß
Frank | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere Infos
|