Curso de Gambas - Primer proyecto (4)

6 - Primer proyecto (4)

[editar]
Tutorial creado por KDE-Hispano. Extraido de: http://www.kdehispano.org/curso_gambas
09 de Noviembre de 2005
Bueno, vamos allá con la base de datos.

Utilizaré MySql y para esto creé la base de datos HomeGestión y una tabla (pa que más florituras en este proyecto).

La tabla gastos tiene la siguiente estructura:

- cod (int(11), no null, sin signo, autoincrement y primary key)
cantidad (float(), por defecto 0, y sin signo)
concepto (varchar(255))
origen (varchar(255))
fecha (datetime)
Si habeís sobrevivido a mi spanglish y superais el trauma del despilfarro en los varchar, seguiremos con el tema :-D

NOTA: Doy por hecho unos conocimientos básicos de mysql (o mejor dicho de base de datos) que nuestro Señor Google puede darnos.

Una vez creada la base de datos y la tabla gastos abri Gambas y pensé ... ¿Y como conecto yo desde gambas?

Bueno, ante la duda ... la más tet... no eso no era, jeje, ante la duda miramos algo que ya esté hecho y que funcione (que buenos son los ejemplos que trae el gambas :D)

Abrimos el DataReportExample y fisgoneando un poquillo el codigo , veo que todo el quid (¿se escribirá así?) esta en el modulo Mglobal y más concretamente en la funcion conn.

Vemos que las variables globales (las de arribita del tó) hay una muy curiosa que es:

PUBLIC db AS NEW Connection

Eso me hizo pensar que habia que añadir algo (algún componente) al proyecto, asi que ya sabemos ... proyecto -> propiedades -> componentes
Y ahí marcamos gb.db (Si no lo teniamos marcado ya). Damos a Ok y ahora creamos un modulo como en el proyecto del DataReport.

Sobre la carpeta modulo, botón secundario, nuevo, modulo, yo lo llame Mdb (soy único escogiendo nombres, jeje)
Y ahora escribimos lo siguiente en el modulo recién creado:

'
' Operaciones con la base de datos '
'
PUBLIC db AS NEW Connection

' Conexion a la base de datos '

PUBLIC FUNCTION conexion() AS Boolean
  db.close ' Cerramos la conexion con la base de datos
  db.Type = "mysql" ' Tipo de base de datos
  ' Datos de la conexion (En nuestro caso son fijos)
  db.Host = "localhost"
  db.Login = "homegestion"
  db.Password = "xxxxxx"
  db.Open
  RETURN TRUE
CATCH
  Message.error(Error.text)
  RETURN FALSE
END


Bueno, expliquemos brevemente el código, aunque lo veo bastante claro (normal, si lo he hecho yo !! :D)
Lo primero es un comentario que se ponen con la comilla de al lao del cero (') Se suelen poner al principio, para acordarme dentro de 1 año cuando quiera cambiar algo.

Definimos db como pública (la ve to Dios, o sea los demas formularios pueden usarla) y es de la ¿clase? Connection. Es la base de las conexiones a la base de datos.

Otro comentario sobre lo que hace la función que viene a continuación y entramos en la funcion conexion que nos conecta con la base de datos. Y devuelve true (Verdadero) y todo ha ido bién y false (Falso) si hay algún error que nos impida conectar, para ello hemos utilizado un catch el cual si detecta un error en la función ejecuta lo que le pongamos detrás (en este caso un mensaje con el error que dé).

Lo primero que hacemos en la función es cerrar otras conexiones abierta que tengamos a la base de datos.

Definimos el tipo de la base de datos, establecemos nuestros datos de conexión (Host, login y password del .... Ups, no creé usuario :-D)

Para crearle un usuario a mysql lo más cómodo es utilizar un gestor gráfico (por que soy muy flojo, no por que sea más rápido). Yo uso mysqlcc que está descontinuado pero el nuevo (mysql query browser) no me gusta. Una vez hecho el usuario podemos seguir con la conexion, pues eso es lo que hace la última opción.

Para probar la conexión ponemos lo siguiente en el evento form_open del formulario (este evento se inicia cuando se abre el formulario)

PUBLIC SUB Form_Open()
  IF (NOT Mdb.conexion()) THEN ME.Close()
  label2.Text = "V. " & Application.Version
  label1.Text = Application.Title & " (Contabilidad personal de David)"
  fecha.Text = Date()
END


que viene a decir algo asi como si no puedes conectar, cierra la aplicacion (el ME es el ¿formulario? actual)

Lo demas son etiquetas para el titulo, la versión y que carge la fecha actual al inicio.

Si todo ha ido bién no pasará nada, si algo falla, nos lo notificará y luego cerrará la aplicación.

A mi no me salió a la primera, los errores que tuve fueron permisos para el usuario, y un error a la hora de escribir la contraseña (demasiadas 'x' para no ser una peli porno, jeje).

En el siguiente capi insertaremos en la base de datos y mostraremos el contenido de la misma en un TableView de la libreria QT.
[editar]

4 opiniones

Excelente

Soy el del comentario anterior, ya me di de alta...
Excelente

Excelente aporte llevo menos de 4 horas en GAMBAS y este a sido el mejor aporte, muy bien explicado y me entusiasma a seguir con el lenguaje excelente muchas gracias
Codigo fuente.

Excelentes tus "memorias" con gambas, quisiera pedirte el código fuente sino no es mucha molestia para poder probar tu aplicación, ya que estoy interesado en el tema de gambas.
Tableview.

Estoy desarrollando un programita con gambas, me tope con un problema con el tableview,:
1)los datos del texbox deseo insertarlos en la tabla, de uno por ves, para el primero funciona ok, el segundo se despelota, me rellena 2 filas con el mismo dato!
2) alguien sabe como saltar este problema. (las ayudas del gambas no estan presentes para elte punto. Gracias.

Tutoriales relacionados con 'Curso de Gambas'

Hace muuuuucho tiempo, cuando empezaba a aprender algo sobre php, me llamó la atención un... Más »

Autor y licencia de 'Curso de Gambas'


Tutorial de KDE-Hispano. Extraido de: http://www.kdehispano.org/curso_gambas CopyLeft
Creative Commons License
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.