domingo, 22 de marzo de 2009

acceso a MySQL desde Gambas

Bueno yo lo que hago es que lea un ficherito XML con la configuración básica (Servidor, base de datos, usuario y contraseña) Pero veamos el ejemplo:

Necesitamos:
Un modulo,(lo llamaremos: mimodulito
Un boton: botoncito1
y un usuario que pulse el botón

Veamos el código para el modulo mimodulito

===============[code="mimodulito"]===============
PUBLIC DBserver AS String
PUBLIC DBuser AS String
PUBLIC DBpassword AS String
PUBLIC DBsql AS String

PUBLIC $Con AS NEW Connection

PUBLIC PROCEDURE Connect()

$Con.Type = "MySQL" ' Type of connection
$Con.Host = mimodulito.DBserver ' Name of the server"
$Con.Login = mimodulito.DBuser ' User's name for the connection
$Con.Name = mimodulito.DBsql ' Name of the data base we want to use
$Con.Password = mimodulito.DBpassword ' User's password
END

===============[/code]===============

Os habreis fijado que previamente he creado unas variables, estas, al estar en un modulo permiten que esten visibles desde todos los formularios, de esa forma cuando cargo la aplicacion lo primero que hago es leer un xml (esto ya lo comentare otro dia) de ahi se obtiene los datos principales y despues se pasan en el codigo PUBLIC PROCEDURE Connect()

Ahora si queremos conectarnos a la base de datos usaremos el siguiente comando: (desde cualquier formulario, en mi caso lo uso al iniciar la aplicación y despues de leer correctamente el archivo xml:

===============[code="en un formulario"]===============

mimodulito.Connect()
TRY mimodulito.$Con.Open()
IF ERROR THEN
Message.Error("No ha sido posible conectar con la base de datos")
Button1.Enabled = FALSE
ENDIF
===============[/code]===============

Fijaros que con TRY lo que hago es controlar el error de conexión a la base de datos, esto lo hago por si no tenemos exito a la hora de conectarnos a la base de datos pero realmente donde activamos la conexión es:

1º Llamamos a nuestro modulo
mimodulito.Connect()

2º Abrimos la conexion con la base de datos (si ponemos TRY podemos controlar si nos da un error)
mimodulito.$Con.Open()

Ahora un ejemplo sencillo de hacer un select y mostrar un resultado en un message box (en VB6 msgbox)

===============[code="en un boton de un formulario"]===============
PUBLIC SUB Button1_Click()

DIM $Query AS String
DIM $Result AS Result



mimodulito.Connect()

$Query = "select * from usuarios where Login = '" & txtlogin.Text & "'"
$Result = mimodulito.$Con.Exec($Query)

IF $Result.Count = 1 THEN

IF UCase($Result!Login) = UCase(txtlogin.Text) THEN

IF ($Result!Password) = txtpassword.Text THEN
AQUI PONEMOS EL CODIGO SI USUARIO Y CONTRASEÑA COINCIDEN
ELSE
Message.Info("contraseña no valida")
END IF
END IF
ELSE
Message("No se ha encontrado el usuario")
END IF

END
===============[/code]===============

txtlogin y txtpassword son dos recuadros de texto :D

Bueno espero que os sirva mi ayuda.

¡Ah! Se me olvidaba, cuando finalicemos nuestra aplicación deberemos de añadir la siguiente linea para desconectarnos de la base de datos:

===============[code="para finalizar"]===============
mimodulito.$Con.CLOSE()
===============[/code]===============

No hay comentarios:

Publicar un comentario