Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-03-2024
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Hola, jmbarrio.

Aver. Te cuento. En mi caso, al ser dos programas gemelos, tenía que exportar todos los ficheros del móvil a una carpeta y desde esa carpeta se trasladaban al PC. El mismo proceso era a la inversa desde el PC al Móvil. Por éso las carpetas .tmp que eran las carpetas donde se hacía una copia de los ficheros del programa que exportaba, (por motivos de seguridad, si fallaba algo) ya que los dos deberían tener los fichero idénticos.

En tu caso, tal como yo lo entiendo, (corrígeme si me equivoco) lo que pretendes es hacer una acopia en el PC de la base de datos del móvil y nada más.

Yo te aconsejaría que, por segudidad, hicieras algo parecido. Es decir:
En tu programa del móvil, genera una carpeta .tmp con la base de datos a exportar al PC. (Por seguridad)

Genera una carpeta en el PC donde vayas a copiar los ficheros de la BD.
Hazte un programa para Windows que simplemente exporte los datos de la carpeta de respaldo a un directorio .tmp, (ésto te garantiza que a la hora de recuperar la copia de la BD al móvil, en caso necesario, siempre tengas la original intacta)

Ambos programas, deberán borrar el directoario .tmp creado cada vez que vayan a exportar una nueva copia, o bien machacar los ficheros de la carpeta .tmp. De ese modo, siempre tendrás dos copias en cada dispositivo: una nueva y otra antigua. En caso de accidente siempre tendrás alguna copia reciente y perderías los mínimos datos. (los de 1 día si haces las copias a diario)

Mientras realizas este trabajo, si me dices las rutas de los dos directorios (PC y W) puedo intentar parchear el programa para que haga la copia del móvil al PC. Pero esto sería más inseguro y deberías plantearte la solución que te he comentado.

Espero que no estés guardando los datos en la memoria interna (TPath.GetDocumentsPath) porque ahí no son accesibles y no aparecen cuando conectas el movil por USB.

Perdona la charla.

Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #2  
Antiguo 20-03-2024
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 67
Poder: 22
jmbarrio Va por buen camino
Muchas gracias JohnAlone, para nada charla, que menos por todas las molestias.

A ver te cuento, en el deployment del proyecto la base de datos embebida esta asignada al assets\internal del dispositivo android

Si uso el comando adb la ruta a donde va la BD sería /data/user/0/com.embarcadero.PDA_DelphiAniwin/files/pruebaSQLite

Si uso el Android Studio en el device file explorer la ruta es data/data/com.embarcadero.PDA_DelphiAniwin/files/pruebaSQLite

Me da la sensación que la BD va a carpetas del sistema

¿Sabes si en el deployment le podría asignar otra ruta distinta al assets\internal? no sé como sería, assets\external o assets\SD..... no se si tu sabes como le podría decir una ruta de la Sd externa o de la SD interna compartida

Muchas gracias por tu tiempo, un saludo.
Responder Con Cita
  #3  
Antiguo 20-03-2024
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Hola, jmbario.
Como sospechaba, tu base está en las carpetas internas del sistema a las que se accede desde TPath.GetDocumentsPath, pero esas carpetas no las lista Windows.
Usando TPath.GetSharedDocumentsPath , accedes a la SD, si no hay, a los ficheros del dispositivo que son visibles.
Éstos ficheros son los que usa el programa.
Son más útiles, pues on accesibles desde Windows, y puedes hacer la copia sin ningún programa intermediario como el que estamos hablando.
Tener un programa intermediario, es por facilitar a los usuarios las copias.
Si usas GetShared podrás acceder desde W en una ruta similar a esta: Este equipo\Nombre de tu Móvill\Tarjeta SD\Android\data\Nombre de tu programa\files\, en la tarjeta SD, o bien Este equipo\Nombre de tu móvil\Almacenamiento interno\Android\data\nombre de tu programa\files\ , si se aalmacenan los datos en el el teléfono, (pero no en la carpeta assets/internal

Yo suelo crear un directorio de datos personalizado en la SD o en la meoria interrna no en (ssets/internal)

Te comento todo esto, aunque tu, seguramente ya lo sabes, por si lo lee en el foro alquier que no lo tenga claro.

No sé si con ésto te hago un lío o te he aclarado algo.

Dame unos días, a ver si me pongo al día de cómo iba el programa RegiControlSincro y puedo adaptarlo para cualquier carpeta.

Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 20-03-2024 a las 16:05:57.
Responder Con Cita
  #4  
Antiguo 20-03-2024
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 67
Poder: 22
jmbarrio Va por buen camino
Buenas tardes, ya me intuía yo algo así o parecido.
El problema es que no se si en el deployment del proyecto puedo cambiar la ruta de la bd embebida y ponerla en Sd interna compartida o en la sd externa.
Desconozco si tiene que ir, si o si en el assets/internal
Te agradezco un montón tu dedicación, muchas gracias.

Un saludo.
Responder Con Cita
  #5  
Antiguo 20-03-2024
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Bueno, jmbarrio. No entro a menudo en el foro. Para éso están los expertos. Sólo cuendo tengo una necesidad de ayuda. Pero cuando entro, veo si puedo ayudar a alguien que lo necesite y me entretengo un poco.

Mira, como te he dicho, yo suelo utilizar alguna carpeta personalizada que abro, como dije, en la SD o en la memoria del móvil que no es assets/internal.

Si tengo que exportar algun fichero (o una BD inicializada) lo que hago es exportarla con la instalación del programa en assets/internal y luego copiarla a la carpeta de datos que he creado con el programa. Si no me va a servir el fichero exportado con assets lo borro y sigo almacenando la información en la carpeta personalizada.

Como te he dicho, y con ánimo de ayudar también a otros miembros del foro, miraré a ver si no me cuesta mucho tiempo, generalizar el programa de transferencia de datos PC<-->Movil, para que sirva para cualquiera que lo necesite.

Un saludo,.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #6  
Antiguo 21-03-2024
jmbarrio jmbarrio is offline
Miembro
 
Registrado: may 2003
Posts: 67
Poder: 22
jmbarrio Va por buen camino
Buenos días JohnAlone, he intentado hacer lo que comentaste en tu ultimo mensaje.

El deployment de instalación de la BD sigue en assets/internal

En la carpeta documentos de la memoria interna he copiado la bd pruebaSQLite.

He modificado el siguiente código.

Código Delphi [-]
procedure TF_Data.FDConnection1BeforeConnect(Sender: TObject);
begin
  {$IF DEFINED (IOS)  or DEFINED (ANDROID)}
    //FDConnection1.Params.Values['Database'] := TPath.Combine(TPath.GetDocumentsPath,'pruebaSQLite')
    FDConnection1.Params.Values['Database'] := TPath.Combine( TPath.GetSharedDocumentsPath, 'pruebaSQLite');

  {$ENDIF}
end
;


Sin embargo al realizar la instalación en el dispositivo cuando va a arrancar la apk se queda en negro, como que no coge el acceso a la BD. ¿Pq me pasa esto?

Gracias, un saludo
Responder Con Cita
  #7  
Antiguo 22-03-2024
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Hola.
Si has copiado tú el fichero manualmente en la carpeta Doccuments del móvil o de la SD, no te la puede leer.
Crea tú la carpeta desde tu App en un directorio propio que tu abres en donde te venga bien.
Estoy trabajando den una rutina para hacer esto desde el programa.
Cuando la termine te comento.
Un saludo.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar motor sqlite en android cancun Desarrollo en Delphi para Android 10 10-11-2023 04:04:04
Problema con SQLite en Android 7.1.1 cancun Desarrollo en Delphi para Android 4 02-09-2023 18:32:53
Delphi SQlite Android pruz Desarrollo en Delphi para Android 3 31-05-2021 20:58:46
Actualizar BD Sqlite Android EdgarSamudio Desarrollo en Delphi para Android 4 25-06-2016 17:05:29
Wifi, Android y SQLite Jose Roman Varios 3 10-09-2015 14:36:30


La franja horaria es GMT +2. Ahora son las 04:42:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi