Aufräumarbeiten beim Beenden der Datenbank (>= A2k)

12/02/2008 - 08:51 von Stefan Dase | Report spam
Hallo und guten Morgen,

um meine Datenbanken auch wàhrend der Arbeitszeit warten zu können, habe
ich àhnlich wie in der Overkill97.mdb ein Formular erstellt, dass beim
Öffnen unsichtbar in den Hintergrund geladen wird. Dies legt in einer
Login-Tabelle einen Datensatz mit Benutzername, Login-Zeit usw. an. Jede
Minute prüft ein Timer im Formular, ob ein Flag zum Beenden der
Datenbank gesetzt wurde und schließt ggf. nach eine Meldung die
Anwendung automatisch.

Prinzipiell funktioniert der Ablauf sehr gut, nur werden einige
"Aufràumarbeiten" nicht immer ausgeführt. Im Unload-Ereignis sollte der
angelegte Datensatz gelöscht sowie eine temporàr erzeugte DB gelöscht
werden:

Private Sub Form_Unload(Cancel As Integer)

On Error Resume Next

'close temp db
Call closeTempDB

With m_rstLogin
.FindFirst "log_LoginID = " & m_iLoginId
If Not m_rstLogin.NoMatch Then
.Delete
End If
.Close
End With

Set m_rstLogin = Nothing

End Sub

Wenn ich die Benutzer rauswerfe klappt der o.a. Code. Beim regulàren
Schließen bleiben aber sowohl die temporàre DB als auch der Datensatz
hàufig erhalten. Woran kann das liegen? Wird das Unload-Ereignis nicht
immer vollstàndig ausgeführt? Oder "überholt" das Beenden das Unload?
Könnte es helfen, wenn ich eine Klasse erstelle, die beim Terminieren
alles löscht?

Vielen Dank für alle Hinweise,
Stefan
 

Lesen sie die antworten

#1 Mark Doerbandt
12/02/2008 - 20:54 | Warnen spam
Hallo, Stefan,

Stefan Dase:

Wenn ich die Benutzer rauswerfe klappt der o.a. Code. Beim regulàren
Schließen bleiben aber sowohl die temporàre DB als auch der Datensatz
hàufig erhalten. Woran kann das liegen? Wird das Unload-Ereignis nicht
immer vollstàndig ausgeführt? Oder "überholt" das Beenden das Unload?
Könnte es helfen, wenn ich eine Klasse erstelle, die beim Terminieren
alles löscht?



ich loese solche Dinge idR so, dass ich eine zentrale Routine habe,
die (mit oder ohne Nachfrage) aufraeumt und die Applikation beendet.
Diese kann man dann von ueberall aus aufrufen. Das klappt meiner
Erfahrung nach stabil. Bei Dir wird offenbar das Unload nicht
ausgefuehrt, wenn "regulaer" beendet wird. Wie genau laeuft denn ein
regulaeres Programmende bei Dir ab?

Gruss - Mark

2. SEK (SQL Server-Entwickler-Konferenz) in Nürnberg:
12./13.4 und 19./20.4.2008 http://www.donkarl.com/SEK

Bitte keine eMails auf Newsgroup-Beitràge senden.

Ähnliche fragen