TutoGambas #1: Bases de datos con Gambas, Conexión y Creación de bases de datos

Este Articulo lo copio de mi blog anterior, espero poder continuar una serie de tutoriales de Gambas, claro, todo dependerá de sus comentarios :D

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 también pueden crearse desde el código, pero esto es tema para otro post, espero cualquier comentario, pregunta o sugerencia :)

Be Sociable, Share!

Tal vez te interese:

37 pensamientos en “TutoGambas #1: Bases de datos con Gambas, Conexión y Creación de bases de datos

  1. Epale mi pana buenas noches, soy el chamo del cnsl que te pregunto lo del “message” en gambas, esta muy interesante lo de la conexion a base de datos. Como te decia, estoy terminando la carrera de tsu en informatica y me gustaria hacer mi tesis de grado en gambas y mysql. Pero no son muchos los conocimientos que tengo sobre gambas, he manipulado visual basic y tengo conocimientos basicos, por lo menos tengo algo, pro me gusta aprender y buscar la manera de hacerlo por mi cuenta. Para mi seria de mucho provecho que me echaras una mano para ir obteniendo experiencia.
    Por ejemplo mi propuesta de tesis es hacer un sistema que pueda registrar, consultar, editar e imprimir las actas de nacimiento de un registro civil.
    obviamente necesito una aplicacion y una base de datos.
    Comenzare a buscar y recopilar todo el material que me sea de ayuda para ir estructurando la idea. Saludos y arriba el software libre…!!!

  2. hey Luis gracias y bienvenido a mi espacio, con gusto podré ayudarte con lo que necesites para aprender a manejar este lenguaje, estoy preparando un par de tutoriales que seguramente te servirán de ayuda, pendiente de las próximas publicaciones :)

  3. hola muy interesante y valioso tu aporte…..felicitaciones por tu espacio.
    necesito una ayuda, estoy haciendo mi tesis de grado en gambas y todo el sistema va muy bien pero estoy utilizando base de datos SQLite3 por supuesto en la propiedad Host cuando coloco la ruta de la base de datos se conecta y funciona muy bien en mi equipo pero cuando llevo el proyecto a otra equipo en la universidad da error en la conexion logico por no ser la misma ruta, entonces tengo que abrir el codigo y cambiar la ruta…..¿que codigo tendria que usar o que tendria que hacer para que mi sistema se conecte a la base de datos sin tener que cambiar la ruta en el codigo o cuando se cree el ejecutable o el paquete para instalar funcione la base de datos….te lo agradeceria mucho si me ayudas con este problemita….gracias

  4. hola amigos estoy trabajando en un proyecto que es un sotfware con base de datos para consejos comunales me gustaria que me envien codigos para terminarlo de desarrollarlo gracias

  5. Hola javier lo que puedes hacer es usar un directorio especial para guardar la base de datoslo mas práctico es por ejemplo ~/.proyecto/base donde proyeto es el nombre de tu proyecto y base es el archivo de tu base de datos, como obviamente la ruta del home cambia entre usuarios puedes crear la ruta en el código d la siguiente forma:

    sRuta = User.Home &/ “.proyecto/base”

  6. Hola yanira, exactamente que necesitas para terminar el proyecto? si quieres puedes enviarmelo a mi correo y puedo ayudarte en algo, además lo publico en proyectos para que otras personas puedan descargarlo, usarlo y mejorarlo, saludos.

  7. Disculpen la tardanza al responder las preguntas pero estaba sin conex, muchas gracias por sus comentarios :D

  8. Excelente tuto compadre me gusta el tema estoy en cero pero quiero meterle caña y darle duro a la programación :)

    Saludos :)

  9. mis compañeros y yo estamos terminando de diseñar pantallas consta de11que son:
    Bienvenida.clave,menu o pantalla inicial,senso,registro que se refiere a los datos por familia,caractistica de la vivienda , consulta y reporte debewmos crear la base de datos y progamar cada boton y caja de texto nesecitamos codigo y lo mas importante que el programa corra en linuxs y windows gacias por leer mi mensaje

  10. excelente tutorial mi amigo me gustaria colocaras como programas con ejemplos para poder hacer mas flexible para los novatos en este temo como yo pero de resto excelente

  11. jjmoncar Lo se, el link a tu blog está en las diapositivas de mi charla para el congreso :D

  12. ola interesante el blog pero la verdad nose como hacer mi coneccion por k ya lo intente de esa manera y a la hora de compilar m manda error a demas tenia entendido k las tablas se asia en mysql en consola y al parecer se hacen ahi la verdad no entiendo me podrian ayudar

    • Hola Ivett.
      El cliente n consola es solo uno de los muchos que existen, puedes hacerlo con la GUI oficial de mysql, vía web con phpmyadmin o el gambas-database-manager por ejemplo, al igual que puedes hacerlo directamente con código como lo coloco en estos tutoriales.
      ¿Qué errores te da exactamente?

  13. Willi, hasta aquí todo claro, pero estoy de acuerdo con el amigo Jose Franciasco Ramirez de que coloques programas con ejemplos, no se si ya lo hiciste, pero la sugerencia es buena. Entiendo que es una labor titánica colocar programas de ejemplos, pero esto facilitaría enormemente el aprendizaje para los novatos. Gracias por tomarte el tiempo para hacer este tutorial y los que vengan, bienvenidos sean!.

    Saludos,
    Juan Carlos.

  14. Y además existe esta página donde se pueden conseguir código para gambas:

    http://64.128.110.55/help/app?en

    Está en ingles pero si se fijan en la parte superior derecha te permite escoger otros lenguajes, como español (le das click a la bandera de España).
    Eso es todo por los momentos.

  15. Salud dad usted hm los felicito por esos tutoriales tan valioso espero pornerlos en pratica, con su ayuda en la conticuacion, de los mismos, gracias.

  16. Hola, me gustó el tutorial, lo corrí y no me dio error, ya lo había intentado con otros que proporcionaban el código pero no lo explicaban bien, y siempre me daba error porque ponía código extra que no iba al caso. Muchas gracias. Me encuentro haciendo un sistema en gambas y la verdad estoy muy atrasada pues no tengo conocimientos de este programa, me pregunto ¿como puedo hacer para validar los datos de usuario y contraseña, y como hacer cuando el usuario olvida su contraseña?

  17. Hola…
    Amigo disculpa lo básico de la pregunta, pero para poder conectarse a una bd no se requiere un codigo para el Modulo y otro para el FMain???

    • No necesariamente, toda la conexión se puede hacer en el módulo inicial y luego en los formularios pueden crearse otras funciones o procedimientos para tratar estos datos, todo depende de las necesidades al programar

  18. Hola te felicito por tu pagina. requiero una guía pues estoy haciendo un sistema de planificación de exámenes estoy usando gambas2 con mysql con canaima gnu/linux 3.0… AYUDA porfa

  19. buen dia willicab exelente tuto, te escribo porque necesito realizar un programa que sirva como recepcion de denuncias y que permita ir generando de forma automatica un numero de expediente que va ser campo clave el programa debe ser ejecutado en varias maquinas conectadas en red de manera que sea una sola bd a la cual se le va agregar y consultar los expedientes, tienes algun tutorial que permita guiarme para hacer este programa

  20. Hey esta muy padre la información, quisiera que alguien me ayudará, apenas ando leyendo sobre Gambas, tengo como proyecto personal hacer un checardor para mi trabajo, pero no se ni por donde empezar en cuanto al código, ya instale gambas y MySQL QUERY BROWSER pero este último no lo pude configurar :( , ayer por lo pronto hice un programa que suma 2 números!!! sigo feliz por lograrlo por que no se programar…y la verdad con el proyecto que tengo no se ni por donde…me podrían explicar please!! no mas una cosa…tenganme paciencia (:

    • Hola, te recomiendo que pruebes el programa “Database” que viene de ejemplo en gambas, ese te puede dar una base de lo que necesitas

  21. Hola muy buen aporte te felicito estoy creando un software educativo y me gustaria hacerlo un poco mas complejo para ello me gustaria crear una base de datos que permita generar reportes como por ejemplo las calificaciones obtenidas en las evaluaciones y las ponderaciones y promedios. pero no se como hacerlo. si me puedes ayudar te lo agradezco

  22. buenas tardess…
    holaa willcab, necesito de tu asesoria, quiero hacer un software educativo que tenga validación de usuario y password , realizado una serie de actividades es decir juegos educativos y a su vez que se conecte a la base de dato, lo juegos deben ser aleatorios que programa me recomiendas y que BD por favor enviarme respuesta a mi correo gracias

  23. Hola; estoy creando una base de datos en gambas con sqlite, necesito buscar un registro con mi campo clave y luego hacerle modificaciones a ese registro. quien me puede ayudar a hacer esto?

  24. una base de datos en gambas puede tener varias tablas como las conectaria como las trabajaria dame un ejemplos de base de datos con varias tablas

  25. Hola amigo, muy interesante tú articulo! Me gustaria comenzar a trabajar con Gambas, puesto que quiero hacer un Software o Sistema de Información para el registo de usuarios de una comunidad ciber. Que programas me recomiendas para realizar la aplicación y la BD.? Si tenes algún articulo o información util al respecto, te lo agradecere de antemano. Gracias!

  26. Buscando ayuda en internet consegui tu blog, que me parece excelente, yo estoy dando clases “Migración al software Libre” en un instituto en Venezuela INCES,
    Como yo tambien estoy en esa migración, comencé por la Ofimática, ahora voy con el Gambas y tengo un proyecto adelantado en Visual Basic muy parecido al de Yanira. (Para un Consejo Comunal, donde participo). Vi que tu publicas las ayudas, estaré pendiente y con tu permiso pondré tu blog en el que yo tengo para ayudar a mis estudiantes. Saludos.

Los comentarios están cerrados.