Creo que te faltan los permisos adecuados para escribir en la SD. Prueba a poner esta variable que obligue a la compilacion a darle permisos de escritura a la SD. Sera una variable solo para los permisos, anque no la uses claro está.
Dim a As String
a = File.DirRootExternal
Espero que esto te ayude, si no, busca en el foro ingles que hace unos dias vi un ejemplo completo de una agenda con base de datos SQL.
Un saludo.
Cierto Psdos, rebuscando por la mañana había encontrado una solución a este tema y es la que tú comentas, el enlace es éste:
http://www.b4x.com/forum/basic4android-updates-questions/16433-where-database.html
Y os pongo la solución por si alguien anda perdido:
Como lo tenía original:###################################
Aquí también había probado poniendo el path de la sd en DBFileDir pero me leía solamente no me dejaba modificar ni eliminar registros
If File.Exists(DBFileDir, DBFileName) = False Then
If FirstTime Then
File.Copy(File.DirAssets, DBFileName, DBFileDir, DBFileName)
SQL1.Initialize(DBFileDir, DBFileName, True)
End If
Else
If FirstTime Then
SQL1.Initialize(DBFileDir, DBFileName, True)
End If
End If
Timer1.Initialize("Timer1",100)
End Sub
Como lo tengo Ahora:####################################
If File.Exists(File.DirRootExternal , DBFileName) = False Then
If FirstTime Then
File.Copy(File.DirAssets, DBFileName, File.DirRootExternal, DBFileName)
SQL1.Initialize(File.DirRootExternal , DBFileName, True)
End If
Else
If FirstTime Then
SQL1.Initialize(File.DirRootExternal , DBFileName, True)
End If
End If
End Sub
Gracias y un saludo