Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/04/2007, 05:45
Avatar de gogupe
gogupe
 
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Re: Usar base de datos MySql

Hola, te voy a poner un ejemplo de una aplicación que uso, te diré que esto siempre lo uso, quiero decir, que lo uso como standard en todas mis aplicaciones, tan solo cambio algunos parámetros.

Antes que nada, por si acaso no lo has hecho, tienes el conector mysql en la pagina dev.mysql.com/downloads/connector/j/5.0.html.
Luego busca el administrator de mysql en dev.mysql.com/downloads/gui-tools/5.0.html

El primero sirve para hacer una conexión ODBC de windows a un servidor MySQL y lo segundo para administrar la BD, crear tabla, campos, eliminar, etc, etc.

Una vez hecho esto ya está preparado para hacer el código en VB, yo uso la versión 6, aunque me imagino que en .net es lo mismo.

Tu aplicación debe tener la referencia "Microsoft ActiveX Data Objects 2.8 Library" (proyecto -> Referencia)

Lo siguiente escríbelo en modulo BAS, de esta forma te asegura de que se cargue al principio y solo una vez.

Public Conexion1 As ADODB.Connection
Public Rst As ADODB.Recordset

Set Conexion1 = New ADODB.Connection
Set Rst = New ADODB.Recordset

Conexion1.ConnectionString = "driver={MySQL ODBC 3.51 Driver};server=<mi_servidor>;uid=<mi_usuario>;pwd= <mi_clave>;database=<mi_bd>;OPTION=16427"

Conexion1.Open

'Donde:
'<mi_servidor> es el nombre del servidor, si lo tienes hecho en tu propio pc, puedes poner localhost
'<mi_usuario> nombre de usuario de mysql (lo puedes configurar con el administrator)
'<mi_clave> password de usuario
'<mi_bd> nombre de la Base de Datos
'Eliminas los <> para declarar la conexión

'Declaramos el RecordSet
Rst.ActiveConnection = Conexion1
Rst.CursorLocation = adUseClient
Rst.CursorType = adOpenDynamic
Rst.LockType = adLockBatchOptimistic

'Abrimos la tabla de la BD
'Rst.Open "SELECT clientes.* FROM clientes ORDER BY id"


Luego te puedes mover con lo registros usando solo Rst, ejemplo:
Rst.movefisrt
rst.delete
etc.

Luego para asignarle a un textbox el valor del recordset:
text1 = rst("nombre")

Para añadir un registro nuevo:

rst.open "INSERT INTO mi_tabla SET nombre ='" & text1.text & "' ,apellidos ='" & text2.text & "'"

Recuerda de encerrar la cadena de texto entre comillas simples
Si es numerico, va sin comillas

Si quieres modificar un registro:

rst.open "UPDATE mi_tabla SET nombre ='" & text1.text & "' ,apellidos ='" & text2.text & "'"


Y mas o menos esto es todo, por lo menos para empezar, yo sinceramente te aconsejo que lo uses asi, ya que es mucho mas rápido y fiable, ademas de que si te lo curras, puedes poner la aplicación que funcione por internet.

Por último para ejecutar una consulta con el comando open, antes tienes que cerrar el recordset, yo uso lo siguiente:

if rst.state=1 then rst.close 'Si está abierto (1), cierra el recordset para luego abrirlo con la consulta, modificación o inserción que yo quiera hacer.
rst.open "SELECT ..."



Si tienes alguna duda, no dudes en decirlo, aunque parezca difícil, cuando le coges el truquillo, es de lo mas simple, ya que siempre se declara de la misma forma, (por lo menos yo) y me da buenos resultados.