German Neuling hat Grundsatzfragen

BMP

Banned
Habe es auf die SD-Karte gespeichert.
Auf dem Handy bekomme ich die alten Daten sofort wieder.
Er zeigt dann im Log beim Starten auch an "Number of rows = 5"

Wenn ich das ganze aber im Emulator starte, bekomme ich jedes mal die Meldung "DB NICHT vorhanden."

B4X:
Sub Activity_Create(FirstTime As Boolean)
   Activity.LoadLayout("1")
      SQL1.Initialize(File.DirDefaultExternal, "Verbrauchsdaten.db", True)

       If File.ExternalWritable = False Then
                    Msgbox("Keine SD-Karte vorhanden oder Schreibgeschüzt.", "")
          Return
                 End If
      
      If File.exists(File.DirDefaultExternal, "Verbrauchsdaten.db") = False Then
         Log("DB NICHT vorhanden.")
         CreateTables
      End If

      Log("Number of rows = " & SQL1.ExecQuerySingleResult("SELECT count(*) FROM table1"))
End Sub

B4X:
Sub CreateTables
SQL1.ExecNonQuery("CREATE TABLE table1 (col1 INTEGER, col2 INTEGER,col3 INTEGER, col4 INTEGER)")
End Sub
 

klaus

Expert
Licensed User
Longtime User
Versuche mal diesen Code:
B4X:
Sub Activity_Create(FirstTime As Boolean)
    Activity.LoadLayout("1")

    If File.ExternalWritable = False Then
        Msgbox("Keine SD-Karte vorhanden oder Schreibgeschüzt.", "")
        Return
    End If
        
    SQL1.Initialize(File.DirDefaultExternal, "Verbrauchsdaten.db", True)
    If File.exists(File.DirDefaultExternal, "Verbrauchsdaten.db") = False Then
        Log("DB NICHT vorhanden.")
        CreateTables
    End If

    Log("Number of rows = " & SQL1.ExecQuerySingleResult("SELECT count(*) FROM table1"))
End Sub
Du versuchst SQL1 zu initialisieren bevor Du weisst ob die SDKarte da ist.

Beste Grüsse.
 
Top