Como abrir una conexion a Mysql y usarla
Ejemplo 1. Creando una Nueva Conexión (MySQL).
Notas:
-
Deberas estar seguro de tener instalados todos los componentes gb.db.mysql y todos los paquetes realcionados con MySQL.
-
Esto no es un ejemplo acerca de sentencias de MySQL.
-
Los privilegiso sobre la base de datos son asignados por MySQL no por Gambas.
-
El gb.db componente ha de estar seleccionado para su programa pueda tener acceso a la Base de Datos.
Recomendaciones:
-
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.
-
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:
-
Crear un nuevo modulo en tu proyecto, en mi caso he llamado al mio MODMain.
-
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:
-
Deberas haber leido las notas y recomendaciones del Ejemplo 1.
-
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
-
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()
-
Deberas ser sumamente cuidadoso con los tipos de datos, por supuesto no podras almacenar un dato tipo String en un campo de tipo Integer.