He modificado el modulo ModSQL.
El nombre de la base la cambié a caja.db en el directorio de la aplicación
Código:
Public Sub ConectarBase() As Boolean
If ConnX.Opened Then Return True
'
With ConnX
.Type = "sqlite3"
'.host = Application.Path '<--- Ruta a la base de datos Sqlite
.Host = User.Home &/ "." & Application.Name '<--- Ruta a la base de datos Sqlite
.name = "caja.db"
.Open()
'
.Exec("PRAGMA foreign_keys = 1;")
'
End With
'
Return True
'
Catch
Return False
End
Y en el FMain:
Tal como la aplicación se abre ahora comprueba si existe el directorio de la base de datos, que no existe, se crea y se copia a este la base que se encuentra en el directorio de la aplicación.
Código:
......
Dim linea As Integer 'Contador de filas
'Comprobar existencia de la base de datos
'Directorio
'Copiado de la base a este
If Not Exist(User.Home &/ "." & Application.Name) Then
'Directorio oculto en la home del usuario
Mkdir User.Home &/ "." & Application.Name
Copy Application.Path &/ "caja.db" To User.Home &/ "." & Application.Name &/ "caja.db"
Endif
........
En el botón de copia de seguridad de la base de datos se puede hacer:
Código:
'NOTE: Comentar a Alberto
Public Sub BTopciones_Click()
'Comprobar primero si existe el directorio donde se va a copiar la base
If Exist(User.Home &/ "BDCAJAseguridad") Then
Copy User.Home &/ "." & Application.Name &/ "caja.db" To User.Home &/ "BDCAJAseguridad/" & "caja.db"
Else
Message.Info("NO EXISTE DIRECTORIO,SE CREA DIRECTORIO Y SE COPIA BASE....")
Mkdir User.Home &/ "BDCAJAseguridad"
Copy User.Home &/ "." & Application.Name &/ "caja.db" To User.Home &/ "BDCAJAseguridad/" & "caja.db"
Endif
End
La base de dato ahora no es necesaria la que tiene el directorio de la aplicación.
Se crea en un directorio oculto con el nombre de la aplicación
y ademas tiene su directorio de copia de seguridad visible en el directorio
padre del usuario.
Ya me comentas que te parece.
Saludos