Timeout

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

wesselo
*
Beiträge: 19
Registriert: Sa, 01.05.2010 22:08

Timeout

Beitrag von wesselo »

Hallo zusammen,

is es möglich das eine Datenbank nach einer bestimmte Zeit geschlossen wird (wenn der Benutzer keine Eingabe mehr macht) die Daten sollten vorher gespeichert werden?

Danke für euere Hilfe und ein schönes Wochenende,
Markus
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Timeout

Beitrag von komma4 »

wesselo hat geschrieben:is es möglich das eine Datenbank nach einer bestimmte Zeit geschlossen wird (wenn der Benutzer keine Eingabe mehr macht) die Daten sollten vorher gespeichert werden?
Nein, nicht dass ich wüsste.
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Timeout

Beitrag von marcel_at_work »

Hallo wesselo,

... ähm... ich weiß zwar nicht ganz genau, wie du das mit dem "Schließen" einer Datenbank meinst, aber mit folgendem Code könntest du schon mal dein Timeout realisieren (Ich benutze ihn für Zeitaktualisierungen in bestimmten Anwendungen).
Wenn du mit DATE/TIME eine Abfrage einfügst, kannst du dann Funktionen ausführen...

Code: Alles auswählen

Sub runTimer()
	Dim nCurrentTime as Long, lSec as Long, lMin as Long, lHour as Long
	Dim sSec as String, sMin as String, sHour as String
	bTimeRunning = True
	
	nCurrentTime = Timer
	
	Do While bTimeRunning
		If nCurrentTime = Timer Then
			Wait 100
		Else
			nCurrentTime = Timer
			
			lSec = nCurrentTime
			lMin = Int(lSec/60)
			lSec = lSec Mod 60
			lHour = Int(lMin/60)
			lMin = lMin Mod 60
			
			sSec = trim(Str(lSec))
			sMin = trim(Str(lMin))
			sHour = trim(Str(lHour))
			
			If Len(sSec) < 2 Then sSec = "0" & sSec
			If Len(sMin) < 2 Then sMin = "0" & sMin
			If Len(sHour) < 2 Then sHour = "0" & sHour
			
			txt_time.text = "[" & Date & " " & sHour & ":" & sMin & ":" & sSec & "]"
		End If
	Loop
End Sub
Bemerkung: Wenn man sich die Funktion mal genauer anschaut, sieht man eine Endlosschleife... d.h., man könnte bei "einfachem" Einfügen in einen bestehenden Code, nichts weiteres Ausführen.
Dies zu umgehen ist aber relativ leicht:
Man muß irgendein Objekt erstellen, dass die "setFocus"-Methode unterstützt (z.B. ein Textfeld), verbindet dessen Objekt-Ereignis "bei Fokuserhalt" mit oben genannter Funktion und erstellt eine SUB, die bei Programmstart den Fokus auf dieses Objekt legt... Vóila: Die Funktion startet im Hintergrund und das Programm ist wieder ansprechbar.

Und mit einem EventHandler für die Maus/Keyboard, könnte man dann bei Bewegungen/Tastaturereignissen eine Zeit-Variable für die oben eingefügte Abfrage aktualisieren. (ungetestet, aber müßte gehen)

Zwecks der Datenbank-"Schließung": Falls du mit deinem Dialog/Formular einen Mehrbenutzer-Betrieb vorhast, könntest du dann bei "Timeout" z.B. einfach das angegebene Passwort für die Datenbankverbindungen auf Null setzen/bzw. eine boolesche Variable auf False (und die DB-Kommunikation geht dann ausschließlich, wenn über eine IF > "True" gegeben ist).

Lg, Marci

[Edit]
Zuletzt geändert von marcel_at_work am Sa, 10.07.2010 18:01, insgesamt 2-mal geändert.
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Timeout

Beitrag von Stephan »

?
Das Problem an diesem Code ist bloß mal wieder die verflixte StarBasic-API


Dein Code greift überhaupt nicht auf die API zurück, sondern enthält nur reines StarBasic.
Wenn man sich die Funktion nämlich mal genauer anschaut, sieht man eine Endlosschleife...
Und was sollte das mit der API zu tun haben, es ist StarBasic nicht mehr.



Gruß
Stephan
marcel_at_work
****
Beiträge: 195
Registriert: Sa, 24.04.2010 15:51
Wohnort: Basel [CH]

Re: Timeout

Beitrag von marcel_at_work »

Hallo Stephan,

... hmmmmm... das nächste Mal wohl besser erst nachdenken, dann schreiben... zudem hab´ich da wohl auch noch a paar kleine Missverständnisse aufzudecken... :lol:

Lg, Marci
[Win 10 Pro x64/Downgrade 7, AOO 4.1.6 und LO 6.3.0.4]
Antworten