Seite 1 von 1

Test: Wann ist eine .DBF-Datei schreibgeschützt?

Verfasst: Fr, 26. Jul 2019 14:34
von Werner
Hi!

Ich traue mich meine Frage fast nicht zu stellen: Wie kann ich erkennen bzw. testen, ob eine .DBF-Datei innerhalb der Berechnung schreibgeschützt ist bzw. geworden ist?

Ich bitte wegen der Hitze um Nachsicht!

Gruß Werner

Re: Test: Wann ist eine .DBF-Datei schreibgeschützt?

Verfasst: Fr, 26. Jul 2019 14:39
von Jan
Hallo Werner,

wenn Du schreibgeschützt durch exklusives Öffnen meinst, dann versuch mal DbLocked(). Bei .T. ist die dbf gesperrt.

Ansonsten ginge auch FLock(). Das gibt Dir ein .F. zurück, wenn das aus welchem Grund auch immer nicht gemacht werden konnte.

Jan

Re: Test: Wann ist eine .DBF-Datei schreibgeschützt?

Verfasst: Fr, 26. Jul 2019 23:36
von AUGE_OHR
unter Cl*pper konnte man im Debugger F6 drücken wenn man DBF Infos haben wollte.

unter Xbase++ gibt es ein Demo (Source) was F6 nachbildet.
DbInfo.zip
Source
(18.25 KiB) 222-mal heruntergeladen
ansonsten wie Jan sagt : "testen" ob man die "locken" kann :D

Re: Test: Wann ist eine .DBF-Datei schreibgeschützt?

Verfasst: Sa, 27. Jul 2019 15:24
von Tom
Wenn FOpen() einen Wert größer Null liefert, lässt sich die Datei auch für Schreiboperationen öffnen, wenn nicht, ist sie geschützt und/oder gesperrt.

Re: Test: Wann ist eine .DBF-Datei schreibgeschützt?

Verfasst: Mo, 29. Jul 2019 16:02
von Werner
Hi!

Ich habe bei meiner Frage noch etwas vergessen: Wenn eine .dbf-Datei dann tatsächlich gesperrt bzw. schreibgeschützt ist: Könnte ich diese dann sofware-mäßig entsperren und wenn ja, wie müsste dies programmiertechnisch aussehen?

Gruß Werner

Re: Test: Wann ist eine .DBF-Datei schreibgeschützt?

Verfasst: Mo, 29. Jul 2019 16:31
von Tom
Hallo, Werner.

Entsperren kann nur der Client (wenn durch USE ... EXCLUSIVE gelockt). Das r/o-Attribut kann man mit FAttr(<cFile>,"-R") entfernen, wenn man die Rechte dazu hat. Man kann es mit FAttr() auch abrufen (FAttr(<cFile>) gibt eine Zeichenkette zurück. Enthält sie ein "R", ist die Datei auf Betriebssystemebene (!) schreibgeschützt).