Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   SQLite FDConnection FDTable error al correr aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=89311)

cl2raul 30-10-2015 23:36:05

SQLite FDConnection FDTable error al correr aplicacion
 
Hola a todos, quiero hacer una apk que funcione tipo catalogo offline mediante una base de datos sqlite3 donde esta tiene imagenes, componentes principales un TImage, 2 Tedit, FDConnection y FDTable...
-En el FDConnection el drivername a sqlite y le doy la ruta al fichero *.db y activo la conexion.
-Conecto el FDTable al FDConnection y selecciono el TableName.
-en el diseñador de LiveBindings conecto:
Edit1 con id
Edit2 con nombre
Image con picture
-id, nombre y picture son Fields de FDTable.
-automaticamente se crean BindSourceDB y BindingsList.
-agrego el componente BindingNavigator y en la propiedad DataSource selecciono BindSourceDB.
-activo la FDTable y se muestra todos los datos en los Edit1, Edit2 e Image.

Supuestamente todo esta bien pero cuando corro el proyecto en mi movil(huawei y300-0100 con adroid 4.2.2) se muestra la pantalla en negro y no hace nada????
aqui les va la unit completa:

Código Delphi [-]
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit,
  FMX.Objects, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error,
  FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool,
  FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Stan.Param, FireDAC.DatS,
  FireDAC.DApt.Intf, FireDAC.DApt, System.Rtti, System.Bindings.Outputs,
  Fmx.Bind.Editors, Data.Bind.EngExt, Fmx.Bind.DBEngExt, Data.Bind.Components,
  Data.Bind.DBScope, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
  FMX.Layouts, Fmx.Bind.Navigator;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Edit1: TEdit;
    Edit2: TEdit;
    FDConnection1: TFDConnection;
    FDTable1: TFDTable;
    BindSourceDB1: TBindSourceDB;
    BindingsList1: TBindingsList;
    LinkControlToField1: TLinkControlToField;
    LinkControlToField2: TLinkControlToField;
    LinkPropertyToFieldBitmap: TLinkPropertyToField;
    BindNavigator1: TBindNavigator;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

end.

AgustinOrtu 31-10-2015 00:57:49

te faltan el TFDPhysSQLiteDriverLink y el TFDGUIxWaitCursor

cl2raul 18-11-2015 15:00:15

si lo note y agrege los componentes pero como le doy la direccion del movil a la dll y una pregunta la hay una dll para android?

AgustinOrtu 18-11-2015 16:39:20

No entendi ninguna de las 2 preguntas, podrias explicarlo mejor? La direccion del movil?

Dll es un concepto que solamente existe en el universo Microsoft

cl2raul 18-11-2015 20:36:18

yo cuando uso el componente TFDPhysSQLiteDriverLink doy la url de la dll en windows pero no tengo idea que tengo q poner en el vendor lib de este componente.

AgustinOrtu 18-11-2015 20:40:19

Creo que estas confundiendo un path (ruta) con URL

Yo siempre dejo por defecto esos valores y nunca supe de algun caso especial que requiera atencion; con SQLite no deberias tener problema porque viene "de serie" en cualquier sistema operativo moderno. De hecho creo que hasta en WinXP viene SQLite. Por lo menos en su SP 3 si

Por cierto, estas desplegando tambien la base de datos SQLite al movil? Otra opcion es crearla si no existe

Revisa este enlace

cl2raul 18-11-2015 21:43:00

si utilizo el data explorer creo una conexion y busco la base de datos sqlite q para windows (si funciona), la ruta es c:\\ y me da error en TFDPhysSQLiteDriverLink

AgustinOrtu 19-11-2015 04:55:19

Yo creo que tu problema es que en Android "no tienes la base de datos". No existe C:\\ en Android.

En los tutoriales de la documentacion se explica como hacer el Deploy de un archivo.

O tambien otra alternativa es crear uno mismo la base de datos si esta no existe en el dispositivo Android

Revisa este enlace

Problemas de drivers no podes tener porque en Android seguro que SQLite viene de fabrica

cl2raul 21-11-2015 01:12:21

ese ejemplo ya lo trate de hacer pero esa base de datos tieme password y so ne cual es, y lo hice con otra base de datos y sin correrlo me funciona pero cuando lo corro me pone la pantalla del movil negro y al final no muestra la aplicacion... pero pongo a falso la coneccion, y me muestra correctamente la aplicacion y pongo un boton para activar esta la coneccion y me da un error, tratare de reproducir nuevamente el ejemplo y mostrarte el error...

yo si copio la base de datos al movil, esta se encuentra en la carpeta dowload en el "interno" y uso GetShareDowloadPath...

AgustinOrtu 21-11-2015 01:21:32

Que excepción se genera?

tonio666 23-11-2015 12:58:42

Para usar la base de datos de ejemplo, la password dejala en blanco, a mi me funciono asi.


La franja horaria es GMT +2. Ahora son las 16:21:27.

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