Como abrir una conexion a Mysql y usarla

Ejemplo 1. Creando una Nueva Conexión (MySQL).

Notas:

  1. Deberas estar seguro de tener instalados todos los componentes gb.db.mysql y todos los paquetes realcionados con MySQL.

  2. Esto no es un ejemplo acerca de sentencias de MySQL.

  3. Los privilegiso sobre la base de datos son asignados por MySQL no por Gambas.

  4. El gb.db componente ha de estar seleccionado para su programa pueda tener acceso a la Base de Datos.

Recomendaciones:

  1. La conexion a la Base de Datos de su programa debera ubicarse en un Modulo, para que asi pueda ser llamada desde cualquier parte del proyecto.

  2. El Manejador de Base de Datos de Gambas es Genial!, pero si deseas crear buenas bases de datos en MySQL deberas usar la consola de MySQL, esto evita problemas a la hora de asignar los tipos de Datos.

Pasos:

  1. Crear un nuevo modulo en tu proyecto, en mi caso he llamado al mio MODMain.

  2. Crear una nueva para la conexion:

PUBLIC $Con AS NEW Connection

3.Ahora creamos un procedimiento para establecer la conexion:

PUBLIC PROCEDURE Connect() $Con.Close() ' Cierra la conexion $Con.Type = "[..../def/mysql]" ' Define el tipo de Conexion $Con.Host = "localhost" ' Nombre del Servidor $Con.Login = "root" ' Usuario para la coenxion $Con.Port = "3306" ' Puerto usado para la conexion, usualmente: 3306 $Con.Name = "Sophia" ' Nombre de la base de datos a usar $Con.Password = "root123" ' Clave de Usuario $Con.Open() ' Abrimos la conexion END
4.Ahora creamos un procedmiento para iniciar el programa:

PUBLIC SUB Main() Connect() ' Ejecutamos el procedimiento conectar FRMStart.Visible = TRUE ' hacemos visible nuestro formulario principal END

5.Si se desea realizar una consulta a la base de datos solo se escribe:

MODMain.$Con.Exec(“SELECT * FROM mysql.user”)

6.Puedes crear consultas con informacion suministrada por el usuario, solamente realiza esto:

PUBLIC PROCEDURE SearchName() DIM $Query AS String $Query = “SELECT * FROM Friends WHERE Name = '” & TBXName.Text & “'” MODMain.$Con.Exec($Query) END


Ejemplo 2. Trabajando con Resultados (SELECTS).

Notas:

  1. Deberas haber leido las notas y recomendaciones del Ejemplo 1.

  2. Gambas tiene un tipo especial de tratamiento con los resultados de las consultas, el cual es llamado Result.

Pasos:

1.Supongamos que se posee una Table Amigos con los siguientes campos:

       Nombre
       Apellido
       Direccion
       Telefono

2.Almacenamos el resultado de la consulta en una :

PUBLIC PROCEDURE BuscarNombre() DIM $Query AS String DIM $Result AS Result DIM $Phone AS String

$Query = “SELECT * FROM Amigos WHERE Nombre = '” & TBXName.Text & “'” $Result = MODMain.$Con.Exec($Query) $Phone = $Result!Telefono Message.Info($Phone) END

  1. Si tu deseas crear un reporte imprimible,puedes colocar el resultado de la consulta en un File usando el formato html, para luego abrirlo con tu navegador.


Ejemplo 3. Transacciones.

Notas:

1.Deberas leer las notas y recomendaciones de los Ejemplos 1 y 2.

Pasos:

1.Asumamos que desea insertar un nuevo registro en la Table Amigos:

DIM $Result AS Result

MODMain.$Con.Begin() $Result = MODMain.$Con.Create(“Friends”) $Result!Nombre = TBXName.Text $Result!Apellido = TBXName2.Text $Result!Direccion = TBXAddress.Text $Result!Telefono = TBXPhone.Text $Result.Update]() MODMain.$Con.Commit()

  1. Deberas ser sumamente cuidadoso con los tipos de datos, por supuesto no podras almacenar un dato tipo String en un campo de tipo Integer.