martes, 4 de noviembre de 2008

Bases de datos con Gambas (I)

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 :)

5 comentarios:

Anónimo dijo...

nunca en mi vida he programado con gambas, a ver si me das un cursito un dia destos xD

William dijo...

jajajaja clarooooo cuando usté quiera :D

Anónimo dijo...

Hola,todavia programas congambas?. Has probado gambas2 con canaima. Saludos

William dijo...

Hola Miguel, en efecto uso la versión 2.16 y hasta ahora me va bien, tengo miedo de actualizar pero algún día lo tendré que hacer XD

Ediel dijo...

Primero que todo jejeje, que de cierto es que los programas hechos en gambas solo funcionan para linux y tendrias un link o un completo tutorial de gambas para aprender desde cero, hasta ahora he comenzado a entrar en este mundo de la programacion, y he visto las bondades del software libre y me ha fascinado, gracias..