SQLite Datenbank mit Filecopy ersetzen - GEHT NICHT

  • Hallo liebes Forum,

    ich baue momentan ein Tool und bin jetzt an einer Stelle angekommen, wo ich die sqlite Datenbank die sich im Scriptpfad befindet durch eine neuere Kopie der selben Datenbank ersetzen möchte.

    Dazu wollte ich gerne den Befehl Filecopy verwenden. Filemove funktioniert nicht (ersetzt sie auch nicht)

    Ich hab es schon mit adminrechten (#requireadmin) versucht

    Ich habe dem Filecopy den parameter 1 und oder 9 mitgegeben

    Manuelles kopieren und ersetzen geht ohne Probleme

    Das ich nachdem ersetzen der DB mein Tool neustarten muss, ist mir bewusst.

    Code
    $pfad1 = C:\Users\benutzer\Desktop\Export Projekt\testprojekthundert\datenbank.sqlite
    $pfad2 = @scriptdir & "\datenbank.sqlite"
    
    FileCopy ($pfad1, $pfad2,1)
  • $pfad1 = C:\Users\benutzer\Desktop\Export Projekt\testprojekthundert\datenbank.sqlite

    $pfad1 würde ich erst mal in Anführungsstriche setzen ;).

    Hast Du zudem mal versucht, die 'alte' datenbank.sqlite vor dem Kopieren zu löschen ?

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hey danke erstmal für die Antwort.

    Ja also die Variablen sind nur Beispiel deswegen fehlen die Häkchen :) ich hab das gar nicht in meinem Programm so 8o

    Ja vorher löschen und dann hinkopieren habe ich schon ausprobiert. Komischerweise bringt filedelete nichts...

    Und das die DB in Benutzung ist, daran kann es nicht liegen da ich es manuell auch einfach löschen/ersetzen kann ohne das irgendeine Abfrage kommt...

  • Ich habe gerade mal einen test gemacht und einen zweiten Script erstellt. Der funktioniert und ersetzt die Datei.

    Liegt also an meinem Hauptprogramm

    Zweiter Script geht:

    Code
    $pfad1 = "C:\Users\ME\Desktop\Export Projekt\Projekteinhundert\mainDB.sqlite"
    $pfad2 = @scriptdir & "\mainDB.sqlite"
    FileCopy ($pfad1, $pfad2,1)

    Ich werde mal versuchen im Hauptscript vor dem Filecopy die DB zu schließen mit "_SQLite_Close()"

    und danach schau ich mal ...

  • Komischerweise bringt filedelete nichts...

    Was bedeutet "FileDelete bringt nichts" genau :Glaskugel:?

    Wird die Datei nicht gelöscht / liefert FileDelete einen Fehler (Returnvalue = 0) ?

    Prüfe die 'alte' datenbank.sqlite bitte mal mit FileGetAttrib

    EDIT : (unsere Posts haben sich gerade überschnitten)

    Ich werde mal versuchen im Hauptscript vor dem Filecopy die DB zu schließen mit "_SQLite_Close()"

    Sicher eine gute Idee :P.

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Hab es hinbekommen. Lag daran das die DB vom Script selbst geöffnet war. Mit _SQLite_Close() ging es.

    Danach habe ich noch die "Restart script UDF Library for AutoIt3" von dem Author"Yashied" genutzt um direkt mein Tool neuzustarten.

    Jetzt geht es perfekt.

    Filedelete hat genauso wie filecopy einfach nicht gegriffen, da die DB geöffnet war.