PDA

Ver la Versión Completa : error con sqlite


LACV
23-11-2015, 17:21:14
buenos días, estoy realizando pruebas con sqlite agrego la base de datos en el deployment y al copilar en el celular se queda en negro y me da forzar el cierre de la aplicacion

ecfisa
23-11-2015, 17:58:26
Hola LACV.

Con la información que das, sería imprudente aventurar una respuesta.

Saludos :)

LACV
23-11-2015, 18:34:26
Hola LACV.

Con la información que das, sería imprudente aventurar una respuesta.

Saludos :)

Bueno , tengo la conexión una consulta y un grid ,agrego la base de datos en el deployment no me da ningún error al copilar al ejecutarse la aplicación en el cel da la pantalla negra y forza el cierre

LACV
23-11-2015, 20:46:11
Hola LACV.

Con la información que das, sería imprudente aventurar una respuesta.

Saludos :)

amigo realice la prueba activando la conexión y el query desde un boton y me aparece el error does not exit y me arroja la dirección de la base de datos en la pc; no se por que hace esto si en el deployment agrego la ruta par android

AgustinOrtu
23-11-2015, 22:49:01
El deployment lo que hace es copiar el archivo de la bd sqlite3 al Android

El problema lo tenes en la FDConnection, porque tenes en el Filename justamente la ruta de la pc

Como se muestra en los tutoriales (http://docwiki.embarcadero.com/RADStudio/XE8/en/Mobile_Tutorial:_Using_FireDAC_and_SQLite_(iOS_and_Android)#Specifying_the_Location_of_the_SQLite_Da tabase_on_the_Mobile_Device), la solucion es agregar codigo en el evento OnBeforeConnect

Tambien podes revisar en los ejemplos el que se llama "FireDACSQLite"

LACV
23-11-2015, 22:51:48
no reconoce tpatch agrego la libreria system.ioutils y me arroja en rojo como si no la reconociera

rchavezh
25-11-2015, 04:51:47
yo lo solucione creando las tabals en el dispositivo el archivo se crea solo

procedure TFormPrincipal.DatosBeforeConnect(Sender: TObject);
begin
{$IF DEFINED(WINDOWS)}
Datos.Params.Values['Database'] := 'C:\Datos\Base.s3db';
{$ENDIF}
{$IF DEFINED(IOS) or DEFINED(ANDROID)}
Datos.Params.Values['Database'] := TPath.GetDocumentsPath + PathDelim + 'Base.s3db';
{$ENDIF}
end;

como ves es distinto para windows que para Android e IOS

en windows si tiene que existir