Páginas vistas en total

5 nov. 2011

Altas, Bajas, Consultas y Modificaciones con Gambas (ubuntu)


Saludos a todos, en esta ocasión este post tratará de un tema que tiene que ver con Base de Datos (B.D.). Se demostrará la conexión de Gambas (también conocido como el Visual Basic de UBUNTU), con MySQL así mismo se realizaran algunas operaciones básicas (Insertar, Buscar, Modificar y Eliminar) sobre los registros contenidos en la B.D.

Cabe mencionar que esta pequeña aplicación es un ejemplo sencillo, para
desarrollarla más eficientemente, es necesario establecer controles de errores
y otros detalles que se profundizan en el ámbito de la programación, esto para
desarrollar una aplicación más robusta, pero este post fue desarrollado con la
finalidad de servir como una pequeña introducción en este ámbito. Esperando
sea de su agrado se da comienzo a lo que de verdad importa.

Para comenzar, se realizará la B.D. la cual será manipulada con el formulario
que se creará en Gambas.


Creación de la base de datos en MySQL


1.- Se pasa a abrir un Terminal y se pasa a acceder a MySQL con la siguiente
instrucción:

“ mysql –u root –p ” (sin comillas)

NOTA: después de teclear un Enter, se pasa a escribir la contraseña
correspondiente a MySQL.


 2.- Se pasa a crear la B.D. la cual llevará el nombre de “registros”, para ello se escribe:

“ create database registros; ”


 3.- Una vez creada la B.D. se accede a la misma, por lo cual se escribe:

“ use registros; “


4.- Se pasa a crear una tabla en la que se almacenarán los datos, la tabla se llamará “alumno”, por lo que se escribe:

“ create table alumno (num_control varchar (15) not null primary key, nombre varchar (20), apellido_p varchar (20), apellido_m varchar (20), carrera varchar (50), semestre varchar (20))engine=innodb; “


5.- Una vez creada la tabla, se insertará un registro, por lo cual se pasa a escribir lo siguiente:

“ insert into alumno values ('07510423', 'Jose', 'Lopez', 'Cruz', 'Licenciatura en informatica', 'Noveno Semestre'); “


6.- Se realiza una visualización de los registros de la tabla alumno, por lo que se escribe:

“ select * from alumno; “




Creación de la aplicación en gambas





1.- Se pasa a abrir gambas, y se muestra la siguiente ventana en la que se selecciona la opción de Nuevo proyecto.


2.- En la siguiente ventana se muestran los tipos de aplicaciones que se pueden crear, así mismo las opciones o por decirlo así, ciertas librerías o componentes que se pueden seleccionar, dependiendo el tipo de aplicación que se desee crear. En este ejemplo, se seleccionará:

1.- Sección de Tipo: Aplicación Gráfica.
2.- Sección de Opciones: Acceso a bases de datos.

Se pasa a dar clic en la opción de Siguiente.


3.- Después aparecerá una nueva ventana en la que se selecciona la ruta donde se desea guardar el proyecto, en este ejemplo, se guardará en el Escritorio. Después se pasa a dar clic en Siguiente.


4.- Ahora se procede a escribir el nombre del proyecto, así mismo el título que se le desee asignar, en este caso se le asigna el nombre de prueba. Y para terminar se da clic en el botón OK.


5.- Al dar clic en OK debe de aparecer un cuadro como el siguiente:


6.- Después de haber dado clic en OK, deberá aparecer la ventana del proyecto a desarrollar, tal y como en Visual Basic.


NOTA: En caso de marcar un fallo, que indique que hace falta algún complemento como gb.db.form como se muestra en la siguiente captura.




Lo que se tiene que hacer es agregar esos componentes, por lo cual basta con dirigirse al Centro de Software de Ubuntu y escribir gb.db para que se muestren todos los complementos con dicho nombre.




Para instalar el complemento faltante, se selecciona y automáticamente aparece la opción de instalar, se da clic y se espera hasta que termine el proceso. También hay que mencionar que debe de estar instalado el gambas2-gb-db-mysq, en caso contrario no se podrá efectuar la conexión del formulario con MySQL.


Después de haber instalado los complementos faltantes es recomendable que reinicien su PC, para que funcione todo a la perfección.




7.- Retomando la creación de la aplicación, en la ventana del proyecto del lado izquierdo, aparecen unas carpetas de las cuales se seleccionará la carpeta con el nombre de modulo, se da clic derecho y se selecciona la opción de Nuevo y luego clic en Módulo.


NOTA: El modulo se realiza para tener un mejor manejo en cuestión a la conexión en los formularios, ya que si se cuentan con muchos formularios, escribir en cada uno toda la sintaxis de la conexión puede ser muy tedioso, por lo cual con el módulo se reduce un poco. A pesar de que solo se realizará un formulario en este ejemplo, nunca está demás que se explique por futuras cuestiones.


8.- Después de haber seleccionado un nuevo módulo, aparece una ventana en la que se escribe el nombre del módulo, puede ser el que uno desee, en este caso se llamará “moduloconexion”. Como consiguiente se pasa a dar clic en el botón de OK.


9.- Después aparece una ventana en blanco, en la cual se procederá a realizar la codificación de dicho módulo. El código a escribir es el siguiente:

'Declaramos una variable en donde se guardara la conexion.
PUBLIC $conexion AS NEW Connection
'se declara el inicio del procedimiento en el modulo creado.
PUBLIC PROCEDURE moduloconexion()
'Se cierra la conexion.
$conexion.Close
'Se pasa a establecer una estructura para la conexion con mysql.
$conexion.Type = "mysql"
'Se indica hasia donde se realizará la conexion.
$conexion.Host = "localhost"
'se indica el nombre con el que se accede a la base de datos.
'En caso de tener algun otro usuario, basta con colocar ese usuario en lugar de root.
$conexion.Login = "root"
'Se establece el puerto en el que se conecta MySQL, que por default es 3306.
$conexion.Port = "3306"
'Se indica el nombre de la base de datos a la cual se desea acceder.
$conexion.Name = "registros"
'Se indica la contraseña establecida en MySQL para poder accesar a la Base de Datos.
$conexion.Password = "university"
'Se abre la conexion.
$conexion.Open()
END

10.- Una vez terminado el módulo, se pasa a crear el formulario, por lo que pasa a dar doble clic en donde dice FMain (ubicado del lado izquierdo, justo donde se encuentra la carpeta de Módulos.


11.- Al dar doble clic, aparecerá el formulario como en Visual Basic. Antes de empezar, comentaré las herramientas necesarias para el formulario, para visualizar la barra de herramientas, para dibujar los botones, etiquetas y cuadros de texto. Basta con dirigirse al menú de vista y seleccionar Caja de Herramientas.


Esto es para visualizar la siguiente cuadricula.


 Donde la 

 es un Label

el 
 es un cuadro de texto 

y el
 es un botón de comando.


12.- Explicado lo anterior, se pasa a dibujar 6 labels, 6 cajas de texto y 6 botones dando como resultado algo como esto.


Label 1 y Texbox1 = número de control Boton1 = Nuevo
Label 2 y Texbox2 = nombre Boton2 = Guardar
Label 3 y Texbox3 = apellido paterno Boton3 = Buscar
Label 4 y Texbox4 = apellido materno Boton4 = Modificar
Label 5 y Texbox5 = carrera Boton5 = Eliminar
Label 6 y Texbox6 = semestre Boton6 = Salir

NOTA: Las propiedades son idénticas a las de visual Basic, para cambiar los nombres Basta con buscar en sus propiedades donde diga Text.




Codificación



1.- Para empezar con los códigos, se empezará en el mismo orden en el que se encuentran los botones en el formulario, por lo que se comenzará con el botón de Nuevo hasta llegar al de Salir. Empezando con esto, el Boton de Nuevo solo limpiará las cajas de texto para después proceder a guardar lo que se introduzca en las cajas de texto. El código es el siguiente:

'Se realizará una limpieza de las cajas de texto.
TextBox1.Clear
TextBox2.Clear
TextBox3.Clear
TextBox4.Clear
TextBox5.Clear
TextBox6.Clear

2.- Código del botón Guardar.

'Codigo del boton Guardar
'Se declara una variable donde se almacena y devuelve el proceso de insercion y de conexion
DIM agregar AS Result
'Se abre la conexion
moduloconexion.moduloconexion
'se pasa a realizar la instruccion para insertar un registro
agregar = moduloconexion.$conexion.Exec("insert into alumno values ('" & TextBox1.Text & "' , '" & TextBox2.text & "' , '" & TextBox3.text & "' , '" & TextBox4.text & "' , '" & TextBox5.Text & "' , '" & TextBox6.text & "')")
'Se establece un mensage que indique que se guardo el registro.
Message("Registro Guardado")
'Se cierra la conexion
moduloconexion.$conexion.Close

3.- Código del botón Buscar.

'Codigo del boton Buscar
'Se declara una variable de tipo string para guardar el valor de un InputBox para realizar la busqueda.
DIM respuesta AS String
'Se declara otra variable que almacena y devuelve el proceso de busqueda y de conexion.
DIM buscar AS Result
'se abre la conexion.
moduloconexion.moduloconexion
'Se declara que la bariable respuesta tomara el valor que se introduzca en el InputBox.
respuesta = InputBox("Introduzca el numero de control del alumno")
'se pasa a realizar la consulta. Cabe mencionar que el valor de alumno es el nombre de la tabla de la base de datos y num_control el campo declarado en mysql
buscar = moduloconexion.$conexion.Exec("select * from alumno where num_control= '" & respuesta & "' ") 'Se pasa a visualizar el registro en las respectivas cajas de texto.
TextBox1.Text = buscar["num_control"]
TextBox2.Text = buscar["nombre"]
TextBox3.Text = buscar["apellido_p"]
TextBox4.Text = buscar["apellido_m"]
TextBox5.Text = buscar["carrera"]
TextBox6.Text = buscar["semestre"]
'Se cierra la conexion.
moduloconexion.$conexion.Close

4.-Código del botón Modificar.

'Codigo del boton Modificar
'Se declara una variable de tipo string para guardar el valor de un InputBox para guardar o no, los cambios.
DIM respuesta AS String
'Se declara otra variable que almacena y devuelve el proceso de busqueda y de conexion.
DIM modificar AS Result
'Se declara que la variable respuesta tomara el valor del menssage.
respuesta = Message.Question("¿Desea Guardar los cambios realizados?", "&Aceptar", "&Cancelar")
'Se establece un if para comparar el valor de la respuesta.
'En el Message, el boton de Aceptar toma el valor de 1, por lo cual la condicion quedaría de la siguiente forma.
IF respuesta = 1 THEN
'se abre la conexion.
moduloconexion.moduloconexion
 'se pasa a realizar un Update para actualizar los registros.
modificar = moduloconexion.$conexion.Exec("update alumno set nombre= '" & TextBox2.Text & "' , apellido_p= '" & TextBox3.Text & "' , apellido_m= '" & TextBox4.Text & "' , carrera= '" & textbox5.text & "' , semestre= '" & textbox6.text & "' where num_control = '" & TextBox1.Text & "' ")
'Se establece un mensage que indique que se guardaron los cambios.
Message("¡Registro Modificado!")
'Se Cierra la conexion
moduloconexion.$conexion.Close
'Se cierra el if
ENDIF

5.- Código del botón Eliminar.

'Codigo del boton Eliminar
'Se declara una variable de tipo string para guardar el valor de un InputBox para Eliminar o no, el registro.
DIM respuesta AS String
'Se declara otra variable que almacena y devuelve el proceso de Eliminacion y de conexion.
DIM eliminar AS Result
'Se declara que la variable respuesta tomara el valor del menssage.
respuesta = Message.Question("¿Esta seguro que desea Eliminar el registro?", "&Aceptar", "&Cancelar")
'Se establece un if para comparar el valor de la respuesta.
'En el Message, el boton de Aceptar toma el valor de 1, por lo cual la condicion quedaría de la siguiente forma.
IF respuesta = 1 THEN
'se abre la conexion.
moduloconexion.moduloconexion
'se pasa a realizar la sentencia de eliminacion del registro, haciendo una comparacion unicamente con la clave primaria que es Num_control.
eliminar = moduloconexion.$conexion.Exec("delete from alumno where num_control= '" & TextBox1.Text & "' ")
'Se establece un mensage que indique que se Eliminó el registro.
Message("¡Registro Eliminado!")
'Se Cierra la conexion
moduloconexion.$conexion.Close
'Se realizara una limpieza de las cajas de texto.
TextBox1.Clear
TextBox2.Clear
TextBox3.Clear
TextBox4.Clear
TextBox5.Clear
TextBox6.Clear
'Se cierra el if
ENDIF

6.- Y el código más largo, el del botón Salir.

'Codigo del boton Salir 
FMain.Close


Comprobación



1.- Para ejecutar el proyecto, basta con teclear F5 o en el menú Depuración. Al ejecutar el proyecto, la aplicación se visualiza de la siguiente forma:


2.-Lo primero a realizar es un alta de un registro, por lo que se llenarán los campos con los siguientes datos:

Numero de control: 123
Nombre (s): Gabriel
Apellido Paterno: Perez
Apellido Materno: Ortiz
Carrera: Ingenieria Electromecanica
Semestre: 6to. Semestre


3.- Ahora se pasa a dar clic en el Botón de Guardar, y deberá visualizarse el siguiente mensaje:


 4.- Nos dirigimos a la base de datos en MySQL, y se realiza una visualización de los registros de la tabla alumno, para verificar que si se agregó el registro, para ello se escribe:

“ select * from alumno; “


 5.- Procederemos ahora a realizar una modificación, al registro con el número de control “07510423”. Por lo que primero se da clic en el botón de buscar, y en el recuadro que aparece, escribir el número de control a buscar.


 6.- Al dar clic en OK, aparecerán los datos del registro en cada cuadro de texto respectivamente.


 7.- Se cambiará el nombre de “Jose” por “Jose Armando”. Ahora, se pasa a dar clic en el botón de Modificar, y se nos preguntará si se desea guardar los cambios, se da clic en Aceptar.


 8.- Ahora se pasa a la B.D. en MySQL y se realiza una visualización nuevamente.

“ select * from alumno; “


 9.- Para terminar se verificará que el botón de Eliminar funcione correctamente. Por lo que se eliminará el dato que se acaba de modificar. Por lo que se da clic en el botón de eliminar, y se nos pregunta si se desea eliminar, se da clic en Aceptar para proseguir.


Se muestra un mensaje en el que se nos indica que fue eliminado.


10.- Se procede a realizar una nueva visualización de los registros para corroborar que el registro fue eliminado:

“ select * from alumno; “


Con esto queda terminado este pequeño manual.

Espero que esto les sea de ayuda y que les sirva de guía para desarrollar una aplicación en Gambas.


Y por si aún quedan dudas de que funcione correctamente, aquí les anexo un video donde se demuestra su funcionalidad.



Por si gustan descargar el Proyecto den clic en el siguiente enlace:


Si tienen cuenta en Scribd y desean agregar a favoritos o descargar el manual es el siguiente enlace: