Denkblockade, bitte mal schauen

  • Tach zusammen

    Ich grüble seit ner Stunde über den Fehler und finde ihn nicht. Völlig simpler Code: Im Feld WERT einer DBase-Datei soll Zeile 3 den Eintrag 1 erhalten. Bekomme keine Fehlermeldung, alles sauber, jedoch wird schlicht die Datei nicht verändert. So langsam komm ich nicht mehr weiter...

    Code
    @db("Open",#2, "config.dbf")
          	@db("Use", #2)
          	@db("Go", 3)
          	X$ = "1"
          	@db("Put", "WERT", X$)
          	@db("PutRec",3)
          	@db("close", #2)

    ---
    Xprofan X4, Win7/32, Win10/64

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress, WoltLab & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    Wenn du Fragen hast, kannst du dich gerne jederzeit an @Maximilian Rupp wenden

    Hinweis:

  • Ich kann eigentlich kein Problem sehen. Habe das extra mal nachgestellt und es klappt, der Wert wird korrekt verändert. Liegt es etwa daran, daß Du die Datei ohne Pfad angegeben hast? Wäre es denkbar, daß Du beim Testen zwei DBFs an verschiedenen Orten erstellt hast und der aktuelle Pfad beim Aufruf auf die eine Datei zeigt und Du den Inhalt der anderen anschaust? Probier es doch einfach mal mit dem vollständigen Pfad im Dateinamen, um sowas auszuschließen.

    Gruß Volkmar

  • Noch 'ne Variante ist mir eingefallen. Steht die DBF möglicherweise in einem Ordner, auf den Dein Programm keine Schreibrechte hat? Moderne Betriebssysteme virtualisieren solche Zugriffe. Da hast Du dann auch den Effekt, daß der Schreibvorgang zwar keinen Fehler zeigt aber die Datei unbverändert bleibt. Lege Deine DBF nicht im Programmordner an sondern erstelle dafür einen Ordner in Deinem Userprofil (z.B. C:\Users\DeinName\Irgendwas\) Dort hast Du auf jeden Fall Schreibrechte.

    Gruß Volkmar

  • Schreibrechte passen alle, mittlerweile habe ich das Verhalten eingrenzen können: nur wenn diese Routine ausgeführt wird, wird anschliessend der Datenbankschreibvorgang kommentarlos ignoriert:


    irgendwas auffällig?

    ---
    Xprofan X4, Win7/32, Win10/64

  • Das sieht eigentlich alles richtig aus. Ich würde jetzt einfach mal auf %IOResult prüfen. Falls so ein Fehler aufgetreten war, funktionieren Dateizugriffe bis zum Auslesen des Fehlers nicht mehr richtig. Also einfach mal ein paar Abfragen in der Art Case %IOResult : MessageBox("Fehler bei xx", "Fehler", 0) einbauen, um zu sehen, ob so ein Problem die Ursache ist. Und wenn ja, dann den Ort genauer eingrenzen.

    Gruß Volkmar

  • die Ursache war

    Code
    @Set("FileMode",0)


    was ich für die Textdatei gesetzt hatte. Dies hat auch Auswirkungen auf anschliessende Schreibversuche in die DBF, wenn ich nicht vorher wieder mit

    Code
    @Set("FileMode",2)


    zurücksetze.

    ---
    Xprofan X4, Win7/32, Win10/64

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!