acceso a mysql en linux desde vbasic 6
-
hola quisiera saber si alguien tiene alguna experiencia accediendo a un servidor linux desde vbasic 6 , estoy por comenzar un proyecto , donde la base de datos va a estar en linux , y el sistema debe tener clientes windows y linux , no puede ser via web ,debe ser una aplicacion nativa , si alguien tiene alguna experiencia en ello por favor , si pueden compartirla . muchas gracias .
-
Hola!
Como podrás leer el post anterior los controladores ODBC, tanto para Windows como para Linux, los descargas directamente desde la página de MySQL. Estos se deben instalar en las PCs cliente donde vayas a utilizar tu aplicación de VB 6.
Bajálos en http://dev.mysql.com/downloads/connector/odbc/3.51.html
Luego, desde tu aplicación podrás utilizar la siguiente cadena de conexión, entre otras posibles:
oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _
"Server=myServerName;" & _
"Port=3306;" & _
"Option=16384;" & _
"Stmt=;" & _
"Database=mydatabaseName;" & _
"Uid=myUsername;" & _
"Pwd=myPassword"
Suerte!! -
Si, es preferible que utilices ADO.
Bajate el MDAC 2.8 (Microsoft Data Access Components), aunque también podés utilizar alguna versión anterior.
http://msdn.microsoft.com/data/ref/mdac/
Luego desde el IDE de VB 6, en el menú Proyecto->Referencias agregás:
Microsoft ActiveX Data Objects Library 2.8
Entonces, con los controladores ODBC de MySQL instalados, versión 3.51, necesitás crear dos objetos para empezar a trabajar con la base de datos:
Un objeto de tipo Connection:Código:Dim oConn As ADODB.Connection Set oConn = New ADODB.Connection oConn.CursorLocation = adUseServer oConn.Open "DRIVER={MySQL ODBC 3.51 Driver};" & _ "Server=myServerName;" & _ "Port=3306;" & _ "Option=16384;" & _ "Stmt=;" & _ "Database=mydatabaseName;" & _ "Uid=myUsername;" & _ "Pwd=myPassword"
Y otro de tipo Recordset, con el cual tendrás acceso a los datos consultados:Como podrás notar, el método Open de la clase Recordset recibe como parámetros, la sentencia SQL como una String y una referencia a un objeto Connection, en este caso nuestro objeto oConn.Código:Dim rsPacientes As ADODB.Recordset Set rsPacientes = New ADODB.Recordset rsPacientes.Open "SELECT NumPaciente, Nombre, DocTipo, DocNum " & _ "FROM Pacientes ORDER BY Nombre", oConn
Para más info, en el MSDN:
http://msdn.microsoft.com/library/en...ireference.asp
Enjoy! -
De que manera es mas optimo? o es lo mismo?
Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset
conn.ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=data;PWD=mipwd;U ID=root;OPTION=3"
conn.Open
rs.Open "SELECT * FROM clientes", conn, adOpenKeyset, adLockOptimistic
Dim sConnCorredor As String
Dim rsCorredor As New ADODB.Recordset
sConnCorredor = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=localhost;DATABASE=data;PWD=mipwd;U ID=root;OPTION=3"
rsCorredor.Open "SELECT * FROM clientes", sConnCorredor, adOpenKeyset, adLockOptimistic
Gracias!!! -
Desde un tiempo a esta parte, o sea, algunos meses, trabajo en el equipo de Desarrollo de una cadena de supermercados e hipermercados y tienen todos los datos en Informix sobre Unix (si bien no es Linux, puede servir de ejemplo), pero los clientes en VB6. Tambien durante muchos años, he trabajado con MSSQL, y realmente no encuentro diferencia, mas alla de ciertas funciones que posee el interprete de comandos de uno u otro.
En cuanto a las conexiones, te recomiendo que implementes clases parametrizadas (duh!) para que te sirvan en otro proyecto, así, vos tenes tu clase que se conecta a lo que vos quieras y de lo que tengas una libreria ODBC... por ejemplo, si el dia de mañana, a Microsoft se le ocurre que el Microcomponente tiene una base de datos, vos te vas a poder conectar... lo mismo cuando se invente el DBChori, jajaj... ok ok.. volviendo al tema...
Si podes utilizar Linux porque queres abaratar costos, o lo que sea, desde VB no hay ningun tipo de problema, siempre que tengas las librerias necesarias.
