A pesar de lo que me gusta desarrollar con Gambas y el tiempo que llevo haciéndolo, nunca he publicado un artículo, tutorial o lo que sea sobre este maravilloso entorno de programación, así que comenzaré por algo sencillo para ir poco a poco profundizando sobre este tema, bases de datos con Gambas :).
Conectandonos a una base de datos
Antes que nada es necesario activar el componente de Bases de datos (gb.db) en la pestaña componentes de la ventana propiedades en el menú Proyecto, luego podemos usar un código como este:
PUBLIC HConn AS Connection
PUBLIC SUB Main()
HConn = NEW Connection
HConn.Type = "mysql"
HConn.Host = "localhost"
HConn.Login = "root"
HConn.Password = ""
HConn.Name = "basedatos"
HConn.Open
END
En la primera línea declaramos una variable de tipo Connection yo la hice pública que pueda ser usada en otros módulos del proyecto en dado caso
En el procedimiento Main creamos primero el objeto y luego colocaremos algunos datos necesarios para iniciar la conexión, cabe destacar que estos datos son los unicos que deben modificarse, por ejemplo, el codigo anterior funcionará tanto para mysql, si quieres conectarte usando SQLite solo tendrías que colocar la ruta de la base de datos en la propiedad Host e ignorar las propiedades Login y Password, para conectar con ODBC es relativamente mas complicado, aquí les dejo Un Link con un tutorial al respecto.
Crear una base de datos
En el ejemplo anterior tenemos la siguiente linea de código:
HConn.Name = "basedatos"
La propiedad Name indica el nombre de la base de datos a la que nos queremos conectar, pero es posible que esa base de datos aún no exista, en ese caso nos daria el siguiente error:
Cannot open database: Unknown database 'basedatos'
Podemos modificar el código para crear la base de datos en caso de que esta no exista, por ejemplo:
PUBLIC HConn AS Connection
PUBLIC SUB Main()
HConn = NEW Connection
HConn.Type = "mysql"
HConn.Host = "localhost"
HConn.Login = "root"
HConn.Password = ""
HConn.Name = "basedatos"
HConn.Open
IF NOT HConn.Databases.Exist("basedatos") THEN
HConn.Databases.Add("basedatos")
ENDIF
HConn.Close
HConn.Name = "basedatos"
Hconn.Open
END
Podemos ver varios cambios, en primer lugar vemos que ya no nombramos la base de datos antes de abrir la conexión, primero verificamos con esta linea:
IF NOT HConn.Databases.Exist("basedatos") THEN
Si existe o no la base de datos, si no existe la creamos con la siguiente función:
HConn.Databases.Add("basedatos")
Luego que ya tengamos la base de datos creada debemos cerrar la conexión para nombrar la base de datos como parametro:
HConn.Close
HConn.Name = "basedatos"
Hconn.Open
Ya con esto nos evitamos la posibilidad de que ocurra un error al no existir la base de datos, claro que una base de datos contiene tablas y campos que tambien pueden crearse desde el código, pero esto es tema para otro post, espero cualquier comentario, pregunta o sugerencia :)