vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Aktive 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.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Aktive Verbindungen trennen 
Autor: I.V.
Datum: 17.10.17 10:10

Hallo Manfred,

wie könnte sowas aussehen?
Ich stelle mir das gerade etwas aufwendig vor


Gruß Ingo

Wer aufhört sich zu verbessern, hört auf gut zu sein.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel