martes, 20 de abril de 2010

Conectar a Base de datos Mysql

Conectar a Base de datos Mysql

En gambas se puede conectar con distintas bases de datos como lo son: PostgreSQL, Mysql, SQLite 2, SQLite 3, ODBC, Firebird.

En este pequeño manual veremos como conectar a una base de datos mysql, como hacer consultas, como mostrar el resultado de las consultas.

Para conectarte a la base de datos debes utilizar el componente “gb.db” lo puedes encontrar en el menú “Proyecto” Luego Buscas “Propiedades” aparecerá una ventana en la parte de arriba aparecerá “Componentes” y buscas el componente “gb.db” y le das “Aceptar”.

También lo puede agregar cuando estas creando el proyecto aparecerá un cuadro que dice opciones y seleccionas “acceso a bases de datos” .

Ahora comenzaremos a conectarnos con la base de datos

DIM cn AS NEW Connection 'Declaración de la variable “cn” para una nueva conexión

cn.Type = "mysql" 'Tipo de conexión Base de Datos

cn.Host = "localhost" 'Dirección , Dominio o ip de donde se encuentra instalada la Base de Datos

cn.Port = "3306" 'Puerto Conexión de la base de datos
'Por defecto mysql utiliza el puerto 3306, pero no es necesario especificar el puerto si se utiliza el puerto por defecto “3306”. Si el puerto es cambiado se debe especificar el puerto de la conexión.

cn.User = "root" 'Usuario de la Base de datos

cn.Password = "josechen" 'La contraseña del usuario de la base de datos

cn.Name = "usuarios" 'Nombre de la base de datos que se usara

cn.Open() 'Abre la conexión de la base de datos

Otras propiedades importantes son:

Databases
Esta contiene 1 propiedad y 4 métodos opciones
- Add “Crea una nueva Base de Datos”
Connection.Databases.Add(“Prueba”)

- Count “Retorna el valor de bases de datos que existen”

- Exist “Retorna True o False si existe la Base de Datos
Connection.Databases.Exist(“prueba”)

- Refresh “Refresca la Base de datos”

- Remove “Remueve, Elimina, Dropear la base de datos”
Connection.Databases .Remove(“prueba”)

Tables
Contiene 1 propiedad y 4 métodos que son:
- Add “Agrega una nueva tabla”

Ejemplo

DIM cn AS NEW Connection 'Declaración de variable cn como una nueva conexión
DIM table AS Table 'Declaramos table como una tabla
cn.Type = "mysql" 'Tipo de Conexión
cn.Host = "localhost" 'Host de la Conexión
cn.User = "root" 'Usuario
cn.Password = "josechen" 'contraseña
cn.Name = "usuarios" 'Nombre de la Base de Dato
cn.Open() 'Abro la conexión
table = cn.Tables.Add("prueba") 'Se Crea una nueva tabla
table.Fields.Add("nombre", db.String) 'Se Agregan los Argumentos
table.Fields.Add("edad", db.Integer)
table.Update() 'Se Actualiza
cn.Close() ' Se cierra la conexión

- Count
Retorna el valor de números de tablas que existen en la base de datos

- Exist
Devuelve true si existe la tabla
Connection.Tables.Exist(“prueba”)

- Refresh
Refresca la Tablas

- Remove
Elimina una tabla
Connection.Tables.Remove("prueba")

Users
Contiene 1 Propiedad y 4 Métodos
- Add
Agrega un nuevo usuario a la base de datos
Connection.Users.Add(“usuario”,”contraseña”,Admin as Bolean “true o false”)
Connection.Users.Add(“Jose”,”123456”,true)

- Count
Retorna el numero de usuarios que tiene la base de datos

- Exist
Retorna true si el usuario existe
Connection.Users.Exist(“root”)

- Refresh
Refresca la tabla de usuarios

- Remove
Remueve un usuario de la base de datos
Connection.Users.Remove(“usuario”)
En lo personal me mando un error y cerro el programa uso gambas 2.20

Version
Retorna la versión de Mysql

Algunas de sus métodos mas importantes son:

Open()
Abre la conexión

Close()
Cierra la Conexión

Exec()
Ejecuta una sentencia SQL
result = Coneccion.Exec(“select * from tabla”)

Find()
Busca dentro de una tabla datos específicos
Ejemplo
result = Coneccion.Find("tabla", "nombre_columna = &1", "dato_a_buscar")
Message.Info(result.Count) 'Imprime cuantos resultados enconto

Limit()
Limita el números de filas a mostrar “Rows”
Coneccion.Limit(10) 'Solo Retornara 10 resultados

Ojo cuando ustedes hacen una consulta “Exec,Find,etc” deben declara una variable de tipo result para guardar los resultados de la consulta.

En este ejemplo se ejecuta la sentencia SQL en la base de dato y esta retorna los datos y son guardados en la variable res de tipo result, con el result podemos trabajar para imprimir todos los datos de que la base de datos nos genero al ejecutar la sentencia.

DIM res AS Result
res = cn.Exec("select * from gambas")
FOR i = 0 TO (res.Count - 1)
Message.Info(res!componente)
res.MoveNext
NEXT

Segunda parte de Conectar a Base de datos Mysql

Control ColumnView

ColumnView

Free Image Hosting at www.ImageShack.us


Este control se utiliza para mostrar datos en forma de tablas.

Algunas de sus propiedades mas utilizadas son:

Background
Sirve para especificar el color del fondo del control

Border
Establece si el control llevara “true” o no llevara “false” bordes


Enable
Especifica si el control esta habilitado “true” o no estará habilitado “false”


Font
Cambia el tipo de letra, tamaño, negrita, subrayado, tachado, cursiva, etc.


Foreground
Cambia el color de la letra

Header
Sirve para especificar si el control llevara cabecera . Es decir que si lleva los nombres de la columnas.

Height
Contiene el alto del control

Mode
Sirve para especificar si las filas pueden ser seleccionadas

Contiene tres tipos de modos:
- None “Ninguna de las filas del control podrán ser seleccionadas”
- Multiple “Se podrá seleccionar varias filas del control”
- Single “Solo se podrá seleccionar una fila del control”


ScrollBar
Especifica si el control llevara Barras de desplazamiento horizontal, vertical o ninguna.

Contiene tres opciones:
- Both “Contiene ambas Barras de desplazamiento”
- Horizontal “Contendrá solo la barra de desplazamiento Horizontal”
- None “No tendrá ninguna barra de desplazamiento”
- Vertical “Tendrá solo la barra de desplazamiento Vertical”

ToolTip
Sirve para mostrar un mensaje cuando el mouse se encuentre arriba del control.

Visible
Establece si el control sera Visible “true” o Invisible “false”

Width
Contiene el ancho del control

X
Posición del control en el eje de las X

Y
Posición del control en el eje de las Y

Para este tipo de control se debe comenzar:
- Especificando las cuantas columnas vas a utilizar
- Especificar el nombre de cada columna, su ancho, su alineación.
- Se debe Agregar un dato con un Key o clave para seguir agregando los siguientes datos.

Todos estos procedimientos se hacen mediante código

Ejemplos

1) Se debe crear un ColumnView y un button
En el button se le cambiara la propiedad Text a Agregar Datos
El Formulario mas o menos quedará como muestra la imagen

Free Image Hosting at www.ImageShack.us

En el evento Open del formulario “Click derecho en el formulario / Eventos / Open” se comenzara a codificar el Header de ColumnView

PUBLIC SUB Form_Open()
'Estableces cuantas columnas vas a utilizar en este caso 3
ColumnView1.Columns.Count = 3
'Primera columna
'Establece el nombre de la primera columna
ColumnView1.Columns[0].Text = "Nombre"
'El Ancho de la primera columna
ColumnView1.Columns[0].Width = 200
'La Alineación del texto en este caso izquierdo
ColumnView1.Columns[0].Alignment = 1

'Segunda columna
'Establece el nombre de la segunda columna
ColumnView1.Columns[1].Text = "Apellido"
'El Ancho de la segunda columna
ColumnView1.Columns[1].Width = 200
'La Alineación del texto en este caso derecho
ColumnView1.Columns[1].Alignment = 2

'Tercera Columna columna
'Establece el nombre de la tercera columna
ColumnView1.Columns[2].Text = "Edad"
'El Ancho de la tercera columna
ColumnView1.Columns[2].Width = 200
'La Alineación del texto en este caso centrado
ColumnView1.Columns[2].Alignment = 3
END

En el button se escribirá el código para agregar un dato a la columnview1

PUBLIC SUB Button1_Click()
'Agregarle Datos a la ColumnView1
'Agrego el primer dato "José" con un key "0" para después seguir agregando mas datos
ColumnView1.Add(0, "José")
'Agrego otro dato especificando el key y la columna. key "0", columna "1"
ColumnView1[0][1] = "Chen"
'Agrego otro dato especificando el key y la columna. key "0", columna "2"
ColumnView1[0][2] = "20"
'Para seguir agregando mas datos se debe cambiar el valor del key ya que sino mandara un error Ejemplo.
'Agrego el primer dato "Marta" con un key "1" para después seguir agregando mas datos
'ColumnView1.Add(1, "Marta")
'Agrego otro dato especificando el key y la columna. key "1", columna "1"
'ColumnView1[1][1] = "Tuñon"
'Agrego otro dato especificando el key y la columna. key "1", columna "2"
'ColumnView1[1][2] = "42"
END

Ya el programa se podrá ejecutar y ver como se llena el columnview1.

2) Ejemplo de como agregar datos y imagen “nombre, edad, sexo, teléfono, rango - imagen” a un columnview1

Este ejemplo se encuentra en el proyecto para descargar

Descargar Ejemplos