Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Aufhebung von FLock?

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

Antworten
Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Aufhebung von FLock?

Beitrag von Wonderer » Fr, 08. Apr 2016 9:53

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... :)

Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1820
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Kontaktdaten:

Re: Aufhebung von FLock?

Beitrag von Rolf Ramacher » Fr, 08. Apr 2016 11:17

das ist dbunlock()

use new 123 exclusive

funkt. auf jedenfall
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de

Wonderer
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 107
Registriert: Do, 06. Jul 2006 13:24

Re: Aufhebung von FLock?

Beitrag von Wonderer » Fr, 08. Apr 2016 11:51

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...

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13768
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Aufhebung von FLock?

Beitrag von brandelh » Fr, 08. Apr 2016 12:58

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 ;-)
Gruß
Hubert

Benutzeravatar
Herbert
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1823
Registriert: Do, 14. Aug 2008 0:22
Wohnort: Gmunden am Traunsee, Österreich
Kontaktdaten:

Re: Aufhebung von FLock?

Beitrag von Herbert » Fr, 08. Apr 2016 15:36

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.
Grüsse Herbert
Immer in Bewegung...

Antworten