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 Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2013
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
unable to open database file

Buenas noches, o días ...
Cita:
Exception class TDBXError with message 'unable to open database file'. Process Project2.apk (22789)
Pues ese es precisamente el mensaje de error que me devuelve la aplicación al ejecutar mi código al compilar para android sin embargo si lo compilo para win32 funciona sin problemas.
Estoy intentando conectar a una BD en SQLite pero sin éxito al hacerlo para Android; les dejo el código por si ven algo que me pueda dar una idea que por que esta fallando, gracias de ante mano y un saludo.
Código Delphi [-]
procedure TForm2.connectButtonClick(Sender: TObject);
begin

  SQLConnection1.Params.Add('database=C:\test.db');
  try
    SQLConnection1.Connected := true;
    executeButton.Enabled := true;
    outputMemo.Text := 'Connection established!';
  except
    on E: EDatabaseError do
      ShowMessage('Exception raised with message' + E.Message);
  end;
end;

procedure TForm2.executeButtonClick(Sender: TObject);
var
  results: TDataSet;
  query: String;
begin
  query := 'SELECT * FROM Usuarios;';

  try
    SQLConnection1.Execute(query, nil, results);
  except
    on E: Exception do
      outputMemo.Text := 'Exception raised with message: ' + E.Message;
  end;
  while NOT results.Eof  do
   begin
  Form2.outputMemo.Lines.Add(results.FieldByName('nombre').AsString);
   results.Next;
   end;
end;
Responder Con Cita
  #2  
Antiguo 10-10-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.037
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código:
SQLConnection1.Params.Add('database=C:\test.db');
Android no entiende esa ruta típica de sistemas windows.
Responder Con Cita
  #3  
Antiguo 10-10-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Échale un vistazo a este documento.
Tal y como dice Casimiro, el path tal y como lo has puesto fallará en Android.

Para ello hay una clase TPath. Revisa la propiedad GetDocumentsPath.

Aquí tienes otro ejemplo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 11-10-2013
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
Buenas de nuevo;

Primero quiero dar las gracias a Casimiro por comentar en donde y por que estaba el fallo
En segundo lugar (voy por orden), a Neftali por darme la pista por donde indagar
Ya resolví el problema y ya, por fin, me conecta les comento por si a alguien le puede servir también de ayuda.
  • Primero deben de dar de "alta" su BBDD en el Deployment Manager
  • Y luego llamarla:
Código Delphi [-]
SQLConnection1.Params.Values['Database'] := TPath.Combine(TPath.GetSharedDocumentsPath, 'test.db');

Total de codigo:
Código Delphi [-]
procedure TForm2.connectButtonClick(Sender: TObject);
begin
   SQLConnection1.Params.Values['Database'] := TPath.Combine(TPath.GetSharedDocumentsPath, 'test.db');
  try
    SQLConnection1.Connected := true;
    executeButton.Enabled := true;
    outputMemo.Text := 'Conexión Establecida !!!!';
  except
    on E: EDatabaseError do
      ShowMessage('Exception raised with message' + E.Message);
  end;
end;

procedure TForm2.executeButtonClick(Sender: TObject);
var
  results: TDataSet;
  query: String;
begin
  query := 'SELECT * FROM testtable;';

  try
    SQLConnection1.Execute(query, nil, results);
  except
    on E: Exception do
      outputMemo.Text := 'Exception raised with message: ' + E.Message;
  end;
  while NOT results.Eof  do
   begin
  Form2.outputMemo.Lines.Add(results.FieldByName('Name').AsString);
   results.Next;
   end;
end;

Gracias y un saludo.!!!
Responder Con Cita
  #5  
Antiguo 11-10-2013
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Gracias a tí por compartir el código.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 15-10-2013
gandalf_uy gandalf_uy is offline
Miembro
 
Registrado: ene 2005
Posts: 39
Poder: 0
gandalf_uy Va por buen camino
Cita:
Empezado por barakuda Ver Mensaje
  • Primero deben de dar de "alta" su BBDD en el Deployment Manager
Como hago para darla de alta en el "Deployment Manager"?

Yo lo que quiero hacer es tener una base SQLite en mi PC y poder copiarla a mi dispositivo Android.

Alguna idea?


Gracias!
Saludos
Responder Con Cita
  #7  
Antiguo 15-10-2013
barakuda barakuda is offline
Miembro
 
Registrado: mar 2010
Posts: 79
Poder: 15
barakuda Va por buen camino
nas..!
En la barra ... Project > Deployment
Clic en Add file, el icono "posit con chispa" y buscas allá donde tengas la bbdd.
En Plataforms clic en [...] y deseleccionas los sistemas que no quieras yo solo dejo Android.
En Remote Path pon: assets\

te dejaría una captura pero no puedo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Error while trying to open file msucuzhanay Firebird e Interbase 1 04-04-2013 14:53:08
Error while trying to open file msucuzhanay Conexión con bases de datos 0 03-04-2013 01:45:53
Unable to open BCP host data-file Kastor SQL 0 18-07-2008 18:00:46
[Linker Fatal Error] Fatal: Unable to open file 'SMI2XLS.OBJ' nera C++ Builder 0 06-09-2006 13:38:25
Error while trying to open file nefy Firebird e Interbase 4 15-09-2004 20:02:42


La franja horaria es GMT +2. Ahora son las 14:20:01.


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