Comunidad Gambas-es
Unable to locate database - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Bases de Datos (https://gambas-es.org/forum-6.html)
+--- Tema: Unable to locate database (/thread-1779.html)



Unable to locate database - frajanic - 04-09-2024

Estoy probando los DATA (DataSource, DataBrowser).
Tengo creada una Conexion para una Base de Datos y creado en ella una tabla.
En FMain he incluido un DataSource con la propiedad Connection con la conexión ya creada y la propiedad Table con la tabla existente.
Dentro deñ DataSource he creado un DataBrowser con la propiedad Colums con los campos de la tabla que me aparece y Labels con los nombres de los campos.
Esto es bien sencillo, pero cuando Ejecuto se detiene con el error:
Unable to locate databse
Tengo incluidos los Componentes: gb.db, gb.data, gb.dbform, gb.sqlite3
Si abro la conexión me aparece efectivamente la base de datos creada con su tabla.
La versión de Gambas 3.19.4
¿Qué puede suceder?
Gracias anticipadas.


RE: Unable to locate database - Shordi - 04-09-2024

Sin ver tu proyecto es imposible decirlo. Pásalo o pasa uno pequeñito que reproduzca el error y te podremos decir algo.

Saludos


RE: Unable to locate database - frajanic - 05-09-2024

Os adjunto el Proyecto LIBROS.
Ni me imagino qué puede suceder, es tan sencillo.
Por cierto, he  recuperado un proyecto en el que se usan DataSource, DataBrowser, etc. que funcionaba perfectamente y ahora, al ejecutarlo, sucede lo mismo: "Unable to locate database".
Gracias.


RE: Unable to locate database - Shordi - 05-09-2024

Ya. El problema es simple: no abres la Base de datos, por tanto los DataSource no la encuentran.
Si añades esto al formulario FMenu, por ejemplo (o al fMain, aunque en tu ejemplo no lo utilices para nada,Mejor establece fMenu como clase de inicio):

Código:
Public Sub Form_Open()

     Dim hCon As Connection

     hCon = Connections["Connection1"]
     If hcon.opened Then hCon.Close()
     hcon.Type = "Sqlite3"
     hcon.Host = Application.Path
     hcon.Name = "LIBROS_DB"
     hcon.Open()

End
Funciona perfectamente. Tan sólo recuerda que Application.Path sólo funciona cuando ejecutes el program desde el IDE. Si lo ejecutas con ese path una vez compilado o instado desde un paquete, no te funcionará. Lo mejor es en la primera ejecución del programa copiarlo a una carpeta "Normal" y establecer luego el hcon.Host dirigido a ella.

Saludos.


RE: Unable to locate database - frajanic - 05-09-2024

Muchísimas gracias.
Funciona. Claro... si es de perogrullo.
Pensaba que al estar definida la conexión en el Datasource, se encargaba de abrir la Base de Datos.
Perdón por mi incompetencia.


RE: Unable to locate database - Shordi - 05-09-2024

(05-09-2024, 12:31)frajanic escribió: Muchísimas gracias.
Funciona. Claro... si es de perogrullo.
Pensaba que al estar definida la conexión en el Datasource, se encargaba de abrir la Base de Datos.
Perdón por mi incompetencia.

Como ya he dicho por aquí múltiples veces, nada de perdón. Estamos para ayudar y tus dudas dan sentido a todo esto.

Saludos


RE: Unable to locate database - Shell - 07-09-2024

frajanic:

Ya nos contarás como progresas y los errores que vas encontrando.
Puede que exista un error "muy común" pero tienes que verlo
según tu código va aumentando. Una pista que te pueda aclarar algo:

Variables locales y variables comunes a un formulario, un modulo, etc.
Y ademas, el paso de una variable, dato, entre los distintos
formularios para que puedas usarlos en estos.

Saludos