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
Timeout
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Timeout
Nein, nicht dass ich wüsste.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?
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)
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)
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Re: Timeout
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...
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]
... ä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
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]
Re: Timeout
?
Dein Code greift überhaupt nicht auf die API zurück, sondern enthält nur reines StarBasic.
Gruß
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.
Und was sollte das mit der API zu tun haben, es ist StarBasic nicht mehr.Wenn man sich die Funktion nämlich mal genauer anschaut, sieht man eine Endlosschleife...
Gruß
Stephan
-
- ****
- Beiträge: 195
- Registriert: Sa, 24.04.2010 15:51
- Wohnort: Basel [CH]
Re: Timeout
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...
Lg, Marci
... hmmmmm... das nächste Mal wohl besser erst nachdenken, dann schreiben... zudem hab´ich da wohl auch noch a paar kleine Missverständnisse aufzudecken...

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