Gambas : Conectando a MYSQL

Lo primero que me interesa cuando he de tantear con un nuevo lenguaje de programacion, es el saber como conectar una base de datos a él.

Aunque, solo lo he logrado con PHP y Gambas jejeje.

Lo mas ideal, seria trabajar sobre SQLite, pues es un gestor que practicamente toda distro ya trae consigo, sin embargo, yo me siento mas comoco con MYSQL, asi que la usare para este proposito.

Lo primero, claro, es tener Gambas y MYSQL instalados..

sudo apt-get install gambas2 mysql-server

Luego, creamos un nuevo proyecto en Gambas, es importante que al crearlo, marquemos la opcion de Acceso a Base de Datos para poder manipular MYSQL.

Si no la has marcado o deseas estar seguro de que si estas trabajando sobre bases de datos puedes ir al menu Proyecto > Preferencias , y en la pestaña de Componentes ver si esta marcado:

  • gb.db
  • gb.db.form

Armaremos un proyecto simple, el cual nos permita hacer una lista de nombres y que guarde cada registro en la base de datos.

Lo primero es crear la base de datos en mysql, yo estoy muy acostumbrado a hacerlo por codigo, asi al hacerlo graficamente es pan comido, ademas de que aprendes la sintaxis para cuando es hora de programar, asi que vamos a una terminal y escribimos..

mysql -h localhost -u root -p

Tomando en cuenta que no has asignado otro usuario a la base de datos y que el servidor se encuentra en tu equipo. Te pedira la contraseña que asignaste a root.

Ahora a crear una base de datos, yo le puse “gambas” , para identificarla facil y guardar ahi lo que trabaje como practica en gambas..

create database gambas;
use gambas;

Ahora, toca crear una tabla que almacene los nombres..

create table nombres (nombre varchar(25));

Con esto tenemos preparada la base de datos, regresemos a nuestro proyecto..

En Gambas, tendremos ya una vista parecida a esta…

No te preocupes si no vez la ventana de formulario, basta con dar doble clic en FMain para verla.

Si oprimimos F6, veras que se despliega la caja de herramientas, arrastramos un Label, un Boton y un Text box.. de esta forma:

Asignamos texto en la propiedad Text al label para que diga “nombre”, borramos lo contenido en el Textbox y en el Boton para que diga “Aceptar”

Ahora vayamos a la programacion!

Da doble clic en el formulario, pues la conexion la crearemos al momento de cargarlo..

Hasta la parte de arriba donde dice “gambas class file“, vamos a dar un enter para otra linea y declaramos una variable publica..

Public con as Connection

Nos vamos ahora a donde dice .. “PUBLIC SUB Form_Open()” e introducimos el siguiente codigo (adelante lo explico)

con = NEW Connection
con.Type = “mysql”
con.Host = “localhost”
con.User = “root”
con.password = “*****”
con.Name = “gambas”
con.Open

Primero debemos crear una variable que contenga la conexion, esta debe tener el tipo de dato “connection”, yo le puse “con”.
Luego el valor que le asignamos a “con” va a ser igual a New Connection, para agregar los datos de la base de datos.

con.Type: Sera el tipo de base de datos (mysql en este caso)
con.Host: El servidor, en este caso el que tenemos en el equipo
con.User: El usuario con el que se conecatara la base
con.password: La contraseña para acceder a la base
con.Name: El nombre de la base de datos
con.Open: Para abrir la conexion

Si oprimimos F5 y abre la ventana sin problemas, es porque ya estas trabajando sobre tu base de datos =).

Cerramos la ventana, pues aun no hemos programado nada para el boton..

Regresamos a la pestaña de formulario y ahora, doble clic en el boton para empezar a programarlo..

Recordemos que en este tipo de lenguaje, todo objeto que agreguemos lleva su nombre (label1, textbox1,listbox1, etc). Esto lo digo, porque hay que acostumbrarse a recordar el nombre de cada componente.

Dije que es bueno trabajar con mysql en terminal, pues en lenguaje de programacion has de usar la sintaxis casi igual que en la terminal.

Para ejecutar consultas se usa db.exec (“consulta”)

Otro dato, antes de programar.. al insertar datos de tipo texto en la base de datos necesario insertarla con comillas “” , el problema es que no puedes poner doble comillas en la programacion, para esto se usan comillas simples (”) a la hora de especificar el dato

db.exec ("insert into nombres values 'texto'")

Sin embargo, crearemos una variable para la textbox, para que lo que escribamos ahi sea lo que insertemos..

No podemos usar

db.exec ("insert into nombres values 'textbox1.text'")

Porque lo que va a insertar sera “textbox1.text” .. lo cual no nos sirve..

Te presento primero el codigo y al final explico como se resuelve esto..

DIM nombre AS String
nombre = TextBox1.Text
db.Exec("insert into nombres values ('" & nombre & "');")

Lo primero es declarar una variable que contenga el texto introducido en el textbox, yo le puse “nombre”.

Luego le asignamos el valor a la variable nombre, en este caso capturara lo escrito en el textbox1 (con la propiedad text).

Y al final ejecutamos la consulta para agregar datos..

Nota que despues del parentesis hay una comilla simple.. lo que este despues de este sera el texto a introducir en la base de datos, luego cerre las comillas y seguido un “&” que indica que no ha terminado la consulta, con el & ya podemos llamar a una variable.

Seguido de la variable agregamos otro &, para terminar la consulta, despues de las comillas cerramos la comilla simple, el parentesis y un “;” que indica el final en la linea de mysql.. otras comillas que terminan la consulta y finalmente un ultimo parentesis que termina la funcion.

Lo que va a ver gambas sera lo siguiente..

db exec ("insert into database values ('nombre');")

(obvio, en nombre es la variable).

Con esto ejecutamos con F5.. Agregamos un nombre en la caja de texto, clic en aceptar y tada!! estamos agregando registros a nuestra base de datos =)

¿Que como veo que estoy introduciendo?

Ve a una terminal, abre tu base de datos y ejecuta..

select*from nombres

Saludos!!

Anuncios

Cuentanos tu reaccion

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s