PDA

Ver la Versión Completa : problema con base de datos+android+delphi xe6


jgutti
28-07-2015, 21:22:26
realizando las primeras pruebas con aplicaciones moviles:
- Al crear aplicación firemonkey agrego componentas como calendario, edit1.txt, combobox, etc en un formulario.
Al compilar la aplicación en delphi xe6 + android (Emulador para Samsumg Galaxy 4) esta se instala en el emulador y en el dispositivo fisico y se ejecuta sin problemas.
Pero si compilo una aplicación con base de datos firebird+delphi xe6+android esta se instala en el emulador y en el dispositivo fisico pero no se ejecuta.
- Igual problema con Aplicaciòn demo de delphi xe6 "PhoneMasterDetailApplication"
- Consulta debo instalar algun drivers en el celular con android como por ejemplo cliente firebird.

Saludos y gracias por la ayuda

AgustinOrtu
28-07-2015, 22:38:03
No podes conectarte a firebird desde android o ios ya que no hay cliente/driver firebird para android o ios

Por lo menos no con FireDAC. FireDAC en dispositivos moviles solamente soporta SQLite o la version mobile de InterBase (InterBase To Go o InterBase Lite, no recuerdo el nombre exacto)

Segun mis experiencias en android (no tengo dispositivo ios para probar) si se genera una excepcion, pasa lo que describes, la aplicacion se cuelga y se cierra, sobre todo con conexiones a bd que fallan

La forma de traerse datos a los dispositivos moviles es usando

EMS
Datasnap
Tethering
API Rest custom

Seguramente hay mas, esas son las que conozco yo y se que soporta delphi

jgutti
28-07-2015, 23:05:30
olvide decir que la aplicaciòn android se conecta como cliente a un datasnap server con base de datos Firebird.
- En modo desarrollo activo el clientdataset1 a true y los datos de la tabla se despliegan en listbox1
(8 registros)

-

AgustinOrtu
28-07-2015, 23:22:47
Perfecto entonces no es un escenario cliente servidor

Es un 3-tier, en donde el server datasnap es el intermediario entre el android y el server firebird

El componente SQLConnection esta en tiempo de diseño como Connected := False?
Tenes el FDGUIWaitxCursor en el cliente?
El solo hecho de poner Connceted a True ya te cuelga la aplicacion?
Como te traes los datos al clientdataset? Usas la clase proxy e invocas a un metodo que devuelve un dataset? o usas un DataSetProvider?
La ip es correcta en el telefono? no te va a valer localhost obviamente
El puerto en cuestion esta abierto en tu router/firewall? Por defecto datasnap usa 211

Te recomiendo usar un bloque try..except cuando pasas el dataset a activo, y muestres el error de la excepcion en pantalla

jgutti
29-07-2015, 15:45:19
Gracias AgustinOrtu por la ayuda y respondio tus preguntas:
Perfecto entonces no es un escenario cliente servidor
- cual es un escenario cliente/servidor

Es un 3-tier, en donde el server datasnap es el intermediario entre el android y el server firebird
- Si
El componente SQLConnection esta en tiempo de diseño como Connected := False?
- Si
Tenes el FDGUIWaitxCursor en el cliente?
- a cual componente corresponde FDGUIWaitxCursor

El solo hecho de poner Connceted a True ya te cuelga la aplicacion?
- Si
Como te traes los datos al clientdataset? Usas la clase proxy e invocas a un metodo que devuelve un dataset? o usas un DataSetProvider?
- Con ClientDataset con DataSetProvider

La ip es correcta en el telefono? no te va a valer localhost obviamente
Si es la Ip del servidor

El puerto en cuestion esta abierto en tu router/firewall? Por defecto datasnap usa 211
- Puerto 211
- Aplicación DataSnap Funcionando:
1.- Servidor DataSnap funcionando en servidor con windows 2008 server con ip fija+Firebird 2.5
2.- Cliente Datasanap vcl conectado con SqlConecction+Provider+ClientDataset+ip servidor+puerto 211 funciona instalado en windows 7

- Problemas:
1.- al desarrollar aplicaciòn delphi xe6 +firemonkey+sqlconecction+provider+clientdataset+ip servidor+puerto 211, se produce el problema, compila y ademas instala la aplicación en emulador y en dispositivo movil pero no se ejecuta la aplicación y visualiza el sgte mensaje "Unfortunately, Proyecto has Stop"

Gacias por la ayuda

AgustinOrtu
29-07-2015, 19:38:03
Tenes el FDGUIWaitxCursor en el cliente?
- a cual componente corresponde FDGUIWaitxCursor


En este punto me equivoque, ya que no se usa FireDAC en este caso

Me estoy quedando sin ideas..

Habilitaste en el servidor DataSnap filtros de encriptacion y/o compresion?

Prueba a crear un nuevo servidor datasnap, que no tenga nada mas que los metodos de ejemplo, el EchoString y ReverseString a ver si te podes conectar a ese

Cual es el emulador que estas usando? A ver si me lo bajo y pruebo

AgustinOrtu
29-07-2015, 19:41:21
Nunca use XE6, acabo de recordar que habia versiones de delphi en las que no se asignaban los permisos de la aplicacion y por eso android no te da acceso a la red

Revisa esto Android USES PERMISSIONS (http://docwiki.embarcadero.com/RADStudio/XE8/en/Uses_Permissions)

tinydiego
22-08-2016, 20:32:24
Hola Agustin, vengo a retomar el tema porque eh tenido un problema similar con la aplicacion movil.

Mi problema esta a la hora de que cuando pongo en True la propiedad Connected de SQLConnecion de la aplicacion se cuelga a la hora de iniciarla.

Sencillamente eh mandado Wifi del dispositivo Android a la PC y puesto como IP en los Parametros la que me dio el Wifi del dispositivo. Adonde puede estar el problema? se que no eh sido el primero en tener esta dificultad con el Connected=True. Desde ya muchas gracias.