German Problem mit Datenbank Backup

Dan'

Member
Licensed User
Longtime User
Hallo,
mein "Datenbank" Backup funktioniert nicht,
mein Kode:

B4X:
Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("start")
'Try
    If File.Exists(File.DirRootExternal,"ZeiterfassungDan/datazeit.db")= False Then
        File.MakeDir(File.DirRootExternal,"ZeiterfassungDan")
        File.Copy(File.DirAssets,"datazeit.db",File.DirRootExternal,"ZeiterfassungDan/datazeit.db")
        File.Copy(File.DirAssets,"jarst.txt",File.DirRootExternal,"ZeiterfassungDan/jarst.txt")
End If
End Sub

Sub Butbackup_Click
    ‘Try
    If File.Exists(File.DirRootExternal,"ZeiterfassungDanBackup/datazeit.db")= False Then
                File.MakeDir(File.DirRootExternal,"ZeiterfassungDanBackup")
        File.Copy(File.DirRootExternal,"ZeiterfassungDan/datazeit.db",File.DirRootExternal,"ZeiterfassungDanBackup/datazeit.db")
        File.Copy(File.DirRootExternal,"ZeiterfassungDan/monast.txt",File.DirRootExternal,"ZeiterfassungDanBackup/monast.txt")
    ToastMessageShow ("Backup erfolgreich gesichert",False)
    Else
        File.Copy(File.DirRootExternal,"ZeiterfassungDan/datazeit.db",File.DirRootExternal,"ZeiterfassungDanBackup/datazeit.db")
        File.Copy(File.DirRootExternal,"ZeiterfassungDan/monast.txt",File.DirRootExternal,"ZeiterfassungDanBackup/monast.txt")
ToastMessageShow ("Backup erfolgreich gesichert",False)
End If

End Sub

Sub Button1_Click
    'wiederstellen
    Try
    If File.Exists(File.DirRootExternal,"ZeiterfassungDan/datazeit.db")= False Then
              File.MakeDir(File.DirRootExternal,"ZeiterfassungDan")
        File.Copy(File.DirRootExternal,"ZeiterfassungDanBackup/datazeit.db",File.DirRootExternal,"ZeiterfassungDan/datazeit.db")
        File.Copy(File.DirRootExternal,"ZeiterfassungDanBackup/monast.txt",File.DirRootExternal,"ZeiterfassungDan/monast.txt")
  ToastMessageShow ("Backup erfolgreich gesichert",False)
   
    Else

File.Copy(File.DirRootExternal,"ZeiterfassungDanBackup/datazeit.db",File.DirRootExternal,"ZeiterfassungDan/datazeit.db")
        File.Copy(File.DirRootExternal,"ZeiterfassungDanBackup/jarst.txt",File.DirRootExternal,"ZeiterfassungDan/jarst.txt")


        ToastMessageShow ("Daten Wiederstellen erfolgreich",False)
    End If

End Sub

die Datei "txt" funktioniert, nur die Datenbank funktioniert nicht.
Erklärung:
hab Daten in der Datenbank
ich mache ein "Backup" ....
ich schreibe neue Daten in Datenbank ...
ich mache ein "Datenbank wiederstellung"
da ist das Problem, ich bekome nicht mehr die Daten der Datenbank
ich habe in der FR. DE. EN. Forum ohne erfolg...
ich habe versucht mit "datazeit.db-wal" und "datazeit.db-shm" ohne erfolg

2)
Wo und wie arbeitet die DB ?

3)
Kann man sein Datenbank (datazeit.db) in PC aufmachen und lesen? Ich habe probiert... wieder ohne Erfolg.
ich habe die DB mit "SQLite Database Browser 2.0 " hergestellt
Die Datenbank funktioniert gut mit mein App.

hat da jemand eine Lösung, Erklärung.??
Danke im Voraus.

Dan'
 

rboeck

Well-Known Member
Licensed User
Longtime User
Hallo Dan,

ich habe auch einige Zeit aufgewendet, bis alles gelaufen ist, aber es läuft so wie geplant.
Ein paar Empfehlungen: Die Pfade würde ich auf jeden Fall als Variable vordefinieren, bei mir ist aufgrund kleinerer Tippfehler der meiste Suchaufwand en; jetzt sind alle Dateinamen und Pfade einmalig im Programm definiert, diese Fehler fallen weg.
Was mir an dem Code fehlt, sind die SQL Statements; möglicherweise ist die Datenbank geöffnet; sie kann nur geschlossenen Zustand kopiert werden. Ich schliesse sie, kopiere den aktuellen Datenbestand in eine zweite Datei mit der Endung sav und öffene die Originaldatei sofort wieder.
Für diese Sicherungsdatenbank habe ich dann Zeit, diese z. B. per Email, Dropbox etc. im Hintergrund weiter zu senden; beim Senden selbst kann ich wieder auf die db Endung zurückwechseln.
Ein Tipp: ganz genau auf Gross- Kleinschreibung achten, beim Copy Befehl hatte ich ständige Fehler, bis ich die Dateinamen wirklich richtig geschrieben hatte.
Am PC gibt es schon viele Tools; im Firefox integriert ist der SQLite Manager; für höhere Ansprüche empfehle ich
http://www.sqliteexpert.com/

Sg
Reinhard
 
Top