Seite 1 von 1

Aufhebung von FLock?

Verfasst: Fr, 08. Apr 2016 9:53
von Wonderer
Wenn man in seinem Quellcode am Anfang die DB mit einem FLock absichert dann aber im späteren Verlauf vor Änderungen ein DbRLock verwendet
wird dann dadurch das FLock aufgehoben?

naja, ich merke gerade beim Fragen das was ich erreichen möchte ist wohl besser mit EXCLUSIVE & NetErr zu machen... :)

Re: Aufhebung von FLock?

Verfasst: Fr, 08. Apr 2016 11:17
von Rolf Ramacher
das ist dbunlock()

use new 123 exclusive

funkt. auf jedenfall

Re: Aufhebung von FLock?

Verfasst: Fr, 08. Apr 2016 11:51
von Wonderer
oh, Missverständnis. Die Frage war nicht wie ich das FLock aufhebe.

Angenommen ich habe folgenden Code:

Code: Alles auswählen

USE "ANY.DBF"
FLock()

// snip...

SEEK somewhere
DbRLock()
  REPLACE field1 WITH value1
  REPLACE field2 WITH value2
DbCommit()
// more code...
Ist jetzt die ANY.DBF nach dem DbCommit() noch komplett gesperrt?

Hmm... nicht so wichtig - ein Anwendungsfall wo das wichtig wäre fällt mir da gar nicht ein...

Re: Aufhebung von FLock?

Verfasst: Fr, 08. Apr 2016 12:58
von brandelh
Ich denke ein FLock() sollte einen dbRLock() verhindern, da die Datei ja schon gesperrt ist.
Bin mir aber nicht sicher. Die Frage stellt sich aber auch nicht wirklich, denn ...

1. Frage wird die Datei noch von anderen benötigt ? NEIN, dann EXCLUSIV öffnen, locken unnötig und viel schneller !
2. JA, ok brauche ich in einer Situation aber kompletten Zugriffsschutz, weil ich z.B. alle Rechnungen eines Kunden löschen will etc. ? => FLOCK() - Operation so schnell wie möglich machen, kein RLock() !
3. JA, aber alle müssen auch können, FLOCK() verboten, weil es alle aussperrt ... Problem !
3.1 Ich brauche nur einen Satz, dann dbRlock()
3.2 Ich brauche mehrere Sätze, dann dbRlock(aBenötigteSatznummern als ganzes sperren ...

Ansonsten neu über das Problem nachdenken ;-)

Re: Aufhebung von FLock?

Verfasst: Fr, 08. Apr 2016 15:36
von Herbert
Wonderer hat geschrieben:Wenn man in seinem Quellcode am Anfang die DB mit einem FLock absichert dann aber im späteren Verlauf vor Änderungen ein DbRLock verwendet
wird dann dadurch das FLock aufgehoben?
Das Flock bleibt aktiv bis zum Aufheben oder Schliessen der Datei. Rlock sind wie Hubert schreibt von dir aus geshen nicht wirksam. Will einer von aussen her Rlocken, dann kommt ein Fehler. commit speichert ab hat aber keinen Einfluss auf den Lockstatus.