dFPUG-Logo

deutschsprachige FoxPro User Group


· F o r u m   V i e w ·

 
  
  Re: Zugriff verweigert- #3906 in section [107755]
Sec: (23) MS-Visual FoxPro 7.0
Von: Burkhard Stiller burkhard.stiller@tiscali.de
An: Andreas Berchtold abc@npt.ch
Am/Um: 21.07.2003 22:39:12 gelesen

Hi Andreas!

ziemlich spät diese Antwort (vielleicht erreicht sie Dich ja noch =
rechtzeitig), aber ich bin erst jetzt wieder mal dzu gekommen die VFP =
newsgroups zu lesen.

Also, wenn ich Dein Problem richtig verstanden habe, dann schließt Du =
eine (zuvor NICHT exklusiv offene) VFP Tabelle, um sie danach gleich =
wieder exklusiv zu öffnen.
Wenn das stimmt, dann sieht das schwer nach einem Timing-Problem des =
Windows-Betriebssystem aus!
Wenn VFP eine Tabelle exklusiv öffnen will, dann gibt es die =
LOCK-Anforderung an Windows weiter (die genauen Interna wurden nie =
wirklich offengelegt, wie das funktioniert). Soll auch jetzt gar nicht =
weiter stören. In Deinem Fall vermute ich, daß der Exclusiv-Lock =
einfach zu schnell von VFP abgesetzt wird (kann mir nicht vorstellen, =
daß Du diese Fehlfunktion per Direkteingabe der Codezeilen im =
VFP-Befehlsfenster reproduzieren kannst (oder doch????). Also, m.E.n. =
ist der vorausgegangene SHARED-Lock vom Betriebssystem noch nicht =
aufgehoben und Du kommst schon mit einem EXCLUSIVE-Lock daher Und da =
krachts dann ab und an, je nachdem, wie gut oder mies Dein Windows an =
dem Tag "drauf ist"

Versuch einfach mal vor die Zeile #6 ein WAIT WINDOW "" Timeout 0.1 oder =
einen anderen Verzögerer einzubauen (INKEY() z.B.). Ich würde =
wetten, daß dann der Spuk ein Ende hat!
Ansonsten bau eine Schleife:

LOCAL llError
llError = .T.

ON ERROR llError = .T.
DO WHILE llError
llError = .F.


ENDDO


Dann probiert der Fuchs solange, bis er exklusives Zugriffsrecht =
bekommt. Vorsicht! Das kann in einer Endlosschleife enden, wenn der =
exklusive lock nie gesetzt werden kann

Kugelsicheren Code schreiben ist eine echte Kunst
Viel Spaß dabei wünsche ich Dir,
Burkhard
burkhard.stiller@rheda-wiedenbrueck.com

"Andreas Berchtold" schrieb im Newsbeitrag news:107051...
Hallo
In einer Anwendung tritt sporadisch der Fehler 1705 Zugriff verweigert =
auf.
Codeauszug:
1 IF USED("tabx")
2 SELECT tabx
3 USE
4 ENDIF
5 SELECT 0
6 USE gcLocDirtabx? EXCL
Auf Zeile 6 tritt dann der Fehler auf, jedoch nur sporadisch. gcLocdir =
zeigt auf ein lokales Verzeichnis mit Vollzugriff, auf dieses =
Verzeichnis greift nur diese Anwendung zu.
Ich habe Versuche unternommen mit Vorherigem DELETE FILE tabx.dbf, mit =
RESOURCE =OFF in der config.fpw. Doch ohne Erfolg. Leider lässt sich =
der Fehler nicht reproduzieren, er tritt ca. jedes 100. Mal auf.
Hoffe auf Ideen
Gruss Andreas







Andreas Berchtold   24.06.2003 15:28
Thomas Geißler  24.06.2003 16:11
Michael Schmidt  24.06.2003 22:21
Wolfgang Maier  25.06.2003 08:36
Harro Schippan  25.06.2003 09:42
Andreas Berchtold  25.06.2003 13:48
Holger Vorberg  25.06.2003 13:55
Andreas Berchtold  25.06.2003 14:01
Holger Vorberg  25.06.2003 14:25
Burkhard Stiller  21.07.2003 22:39
  
zurück zum Forum