MySQL es una de las base de datos mas rpidas y potentes de la actualidad si a
esto le agregamos lo rpido que se torna desarrollar bajo Visual Basic sin dudas corremos con grandes ventajas a la hora de crear potentes aplicaciones. No solo para acceder de forma local a nuestra base de datos sino tambin puede que necesitemos acceder a un servidor MySQL localizado en otra parte del mundo y hasta que este corra bajo Linux.
Como primer paso debemos crear la referencia a RDO (Remote Data Object) desde nuestro Visual Basic, para esto vamos al men Proyecto > Referencias... y ah seleccionamos Microsoft Remote Data Object...
Esa va a ser la librera (similar a ADO o DAO) que nos va a dar todos los mtodos para poder conectarnos tanto local como de forma remota a un servidor MySQL.
La aplicacin de ejemplo que hemos creado conecta al servidor indicado mediante un usuario y contrasea y nos devuelve todas las tablas de la base de datos indicada, veamos un grfico as queda mas claro...
Al hacer click en el botn conectar se inicia el proceso de conexin al servidor indicado...
Private Sub boton_conectar_Click() Dim cadena_conexion
'creamos la cadena de conexin leyendo los valores de los textbox cadena_conexion = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER=" & servidor & "; DATABASE=" & base_de_datos & " ;PWD=" & password & "; UID=" & usuario & ";OPTION=3"
Set db = New rdoConnection
'asociamos la cadena de conexin al objeto db.Connect = cadena_conexion db.CursorDriver = rdUseServer
'establecemos la conexin db.EstablishConnection End Sub
Ese es el cdigo que nos conectara a nuestro servidor MySQL, vemos en negrita los comentarios en el cdigo que nos facilitaran entenderlo. El prximo paso ser obtener el listado de todas las tablas de la base de datos abierta....
Dim tabla As rdoTable Dim hay_tablas As Boolean
hay_tablas = False cambiar_botones True
'recorremos todas las tablas For Each tabla In db.rdoTables 'extraemos el nombre de la tabla y lo agregamos en un listbox tablas.AddItem tabla.Name hay_tablas = True Next
If Not hay_tablas Then MsgBox "La base de datos esta vacia" boton_desconectar_Click End If
Hasta ac ya tenemos una lista de todas las tablas que hay en la base de datos, ahora solo nos queda listar el contenido de la tabla seleccionada...
Dim tabla As String Dim consulta As New rdoQuery Dim resultados As rdoResultset Dim contenido_row As String Dim columna As rdoColumn
contenido.Clear
tabla = tablas.List(tablas.ListIndex)
'le indicamos al objeto consulta que usaremos db como base de datos activa Set consulta.ActiveConnection = db
'creamos la consulta SQL y la ejecutamos consulta.SQL = "SELECT * FROM " & tabla & " WHERE 1" consulta.Execute
'asigamos el resultado de la consulta a nuestro objeto resultados (rdoResultset) Set resultados = consulta.OpenResultset
'recorremos todos los resultados While Not resultados.EOF
contenido_row = ""
'cargamos el contenido de cada registro For Each columna In resultados.rdoColumns contenido_row = contenido_row & columna.Name & "=" & resultados(columna.Name) & "; " Next
'agregamos el contenido de cada registro al listbox contenido.AddItem contenido_row resultados.MoveNext Wend
'cerramos y borramos los objetos resultados.Close Set resultados = Nothing