Re: Forma Correcta En La Conexion De Base De Datos Sqlite3
No me ha quedado claro lo de:
File.Dir(path) devuelve el directorio
File.Name(path) devuelve el nombre del archivo
¿Devuelve el directorio donde esta el proyecto o que directorios son?
Devuelve el directorio o el nombre del archivo de la ruta que le pases a esa función. Es decir, de su argumento que en este caso es "path". Ese nombre significa "ruta", pero podría ser cualquier cosa, simplemente es una variable que le pasamos a esas funciones. Lo que realmente importa es el contenido de esa variable "path" que, como su nombre indica, es la "ruta" al fichero de la base de datos sqlite.
Si tu fichero de base de datos está en tu carpeta de usuario y se llama "mibasededatos.db", su ruta absoluta sería algo así: /home/tu_usuario/mibasededatos.db
Esa es la ruta completa a tu base de datos. Como el objeto Connection necesita el .Host y el .Name de la base de datos (que corresponden precisamente al directorio y al nombre de la bd respectivamente), la forma más rápida de obtenerlo es mediante las funciones estáticas File.Dir() y File.Name() que necesitan la ruta de un fichero como argumento común.
Ese es todo el misterio alrededor de ese código. Sencillo, ¿no?.
Adicionalmente, has de saber que
gambas tiene otras funciones muy útiles para obtener la ruta a la carpeta de usuario, ya que ésta será distinta para cada usuario, ya sea en tu mismo PC o en el de un amigo, por ejemplo. Para ello existe esta función:
User.Home
que en mi caso devolverá "/home/jesus" y en el tuyo "/home/lykan" o como quiera que se llame tu propio usuario del sistema. Como ves, esto facilita hacer que tu programa funcione en cualquier instalación.
Dicho esto, la ruta que has de pasar a la función conectarBD() sería por ejemplo:
conectarBD(User.home &/ "mibasededatos.db")
Por supuesto, deberás usar el nombre real de tu base de datos y el ejemplo es válido solo en el caso de que el fichero de BD esté dentro de la carpeta de usuario.
Espero que hayas comprendido mis largas explicaciones, si tienes dudas, sigue preguntando con total libertad.
Saludos