|
|
|
|
|
- Presentación
- Creación de una conexión SQLite
- Transferencia de datos de una aplicación WINDEV a una aplicación Android
- Copia de una base de datos SQLite del PC al dispositivo móvil
- Copia de la base de datos SQLite de Android en la tarjeta SD
- Transferencia de datos SQLite desde una aplicación Android a una aplicación WINDEV
- Datos SQLite encontrados en el directorio de base de datos del dispositivo móvil
- Datos SQLite encontrados en la tarjeta SD del dispositivo móvil
- Nota: Creación de un emulador de Android con una tarjeta SD
- Ejemplo
Aplicación Android: Utilizar y compartir datos SQLite
Disponible solo con este tipo de conexión
Advertencia
Esta funcionalidad se conserva por motivos de compatibilidad. Es preferible utilizar una base de datos HFSQL..
Las bases de datos disponibles para las aplicaciones Android son: - HFSQL (clásico y cliente/servidor),
- SQLite.
Para utilizar una base de datos SQLite, debe declararse una conexión SQLite en el editor de análisis.
Creación de una conexión SQLite Se puede crear una conexión SQLite: - Al crear el análisis. Al crear un análisis para una aplicación Android, la base de datos sugerida es SQLite o HFSQL (Clásica o Cliente/Servidor). Si selecciona "SQLite", el asistente creará automáticamente una conexión para gestionar y acceder a este tipo de archivo de datos. El asistente le permite introducir los parámetros avanzados de esta conexión:
- Nombre del archivo que contiene la base de datos.
- Directorio de la base de datos.
- En el editor de análisis del modelo de datos. En la pestaña "Análisis", en el grupo "Análisis", haga clic en Conexiones". Basta con añadir una conexión a una base de datos SQLite y especificar sus características.
Una vez creada la conexión, podrá utilizar todas las funciones de WLanguage para manipular archivos de datos, así como las posibilidades de enlace con los controles. Se puede acceder a las bases de datos SQLite desde WINDEV o WEBDEV a través de Native SQLite Access. Por lo tanto, usted tiene la posibilidad de intercambiar datos entre la base de datos de su "Back Office" WINDEV y la base de datos móvil. Transferencia de datos de una aplicación WINDEV a una aplicación Android Copia de una base de datos SQLite del PC al dispositivo móvil Cuando una aplicación Android crea un archivo de datos SQLite, la base de datos SQLite se crea en el directorio "/data/data/com.<mycompany>.<projectname>/databases/<base>.db". No se puede acceder a este directorio desde el PC. Android no permite el acceso a estos datos. Para transferir una base de datos SQLite que se encuentra en el ordenador del desarrollador a un dispositivo Android, la base de datos se puede añadir en el archivo apk de la aplicación. Esta operación puede realizarse al crear el archivo de Android, en la pantalla "Integrar archivos". Este archivo puede instalarse en el teléfono Android en cuanto se inicie la aplicación fExtractResource. Por ejemplo, para instalar la base de datos en el directorio por defecto de bases de datos de Android: fExtractResource("MaBasePC.db", CompleteDir(fDataDir()) + "Base.db")
Copia de la base de datos SQLite de Android en la tarjeta SD Cuando una aplicación Android crea un archivo de datos SQLite, la base de datos SQLite se crea en el directorio "/data/data/com.<mycompany>.<projectname>/databases/<base>.db". Para ignorar este límite, te recomendamos que utilices la tarjeta SD del dispositivo móvil para almacenar los datos. Para ello, debe modificar las características de la conexión utilizada, especificando el directorio de la tarjeta SD. Esta operación debe realizarse mediante programación. Por ejemplo: gcnxSQLite is Connection = MonFichierAndroid.Connexion
gcnxSQLite.Source = CompleteDir(SysDirStorageCard()) + "Base.db"
gcnxSQLite.Provider = hNativeAccessSQLite
Este archivo será accesible desde el PC cuando el dispositivo móvil esté conectado al PC. Por lo tanto, podrás realizar copias de la base de datos del PC al dispositivo móvil y viceversa. Transferencia de datos SQLite desde una aplicación Android a una aplicación WINDEV Datos SQLite encontrados en el directorio de base de datos del dispositivo móvil Si los datos SQLite a transferir se encuentran en el directorio de datos por defecto del dispositivo Móvil, la transferencia debe ser realizada por la aplicación Android mediante peticiones HTTTP (servicio AWP), una transferencia FTP o vía sockets. Datos SQLite encontrados en la tarjeta SD del dispositivo móvil En este caso, basta con copiar los datos SQLite de la tarjeta SD (visible como un disco Windows) al PC e incluir los datos en la aplicación WINDEV. Nota: Creación de un emulador de Android con una tarjeta SD Para tus pruebas, tienes la posibilidad de crear una tarjeta SD en el emulador de Android: - Iniciar una ventana de consola de comandos en Windows ("Inicio .. CMD").
- Sitúate en el directorio "tools" del SDK de Android utilizado.
- Utilice la siguiente Line de comandos (para una tarjeta SD de 256 MB):
mksdcard.exe 256M c:\temp\sdcard.img - En WINDEV Mobile, al iniciar el emulador, modifique la Linea de comandos de la siguiente manera:
-no-boot-anim –partition-size 128 –sdcard c:\temp\sdcard.img
El siguiente ejemplo permite utilizar una base de datos SQLite en Android con acceso a la base de datos desde un PC durante la conexión del dispositivo en USB. La base de datos se almacena en la tarjeta SD del dispositivo.
sRepertoiredesDonnées is string
sRepertoiredesDonnées = "data_wm_androidbasesqlitepartagepc"
sNomBaseSQLite is string = "wm_basesqlite.db"
sUniteSDCardDepuisPC is string = "e:"
CnxBaseSQLite.Provider = hNativeAccessSQLite
IF InAndroidMode() = True THEN
IF InSimulatorMode() = True THEN
CnxBaseSQLite.Source = fExeDir() + ["\"] + sNomBaseSQLite
ELSE
IF SysStatusStorageCard() = sysCardAvailable THEN
CnxBaseSQLite.Source = SysDirStorageCard() + ["/"] + ...
sRepertoiredesDonnées + ["/"] + sNomBaseSQLite
ELSE
Error("Pas de carte de stockage disponible en écriture.")
EndProgram()
END
END
ELSE
IF InAndroidEmulatorMode() = True _OR_ IniOSEmulatorMode = True THEN
Error("Accès à la base non prévu sur cette plateforme")
EndProgram()
ELSE
CnxBaseSQLite.Source = sUniteSDCardDepuisPC + ["\"] + ...
sRepertoiredesDonnées + ["\"] + sNomBaseSQLite
END
END
IF HOpenConnection(CnxBaseSQLite) = False THEN
Error("Echec de la connexion à la base de données SQLite Android", ...
HErrorInfo())
EndProgram()
END
HCreationIfNotFound("*")
Info("Connexion effectuée à la base")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|