[ Foro de SQL (y MySQL) ]

Conexión Odbc en VB

24-Sep-2015 21:22
Eduardo Tricotti
1 Respuestas

Hola.
Actualmente tengo un sistema desarrollado en VB6 que trabaja tanto con Access, Oracle y SqlServer y la idea es que trabaje con MySql.
La apertura de la base de datos se hace a través de odbc y el código VB que hace esto es el siguiente:

Public Sub AbrirBaseDatos()
Dim Conex As rdoConnection
    Set Conex = OpenConnection("SPSuite", rdDriverNoPrompt, False)
End Sub

Nota: El modelo de datos utilizado es RDO

Esa única sentencia (Set Conex = ?) es la que se utiliza para abrir cualquier base de datos, sea Access, Oracle o SqlServer) y "Spsuite" es el nombre del odbc de sistema que se define según el motor de base de datos.
El problema es que en caso de que el odbc sea de MySql esa sentencia devuelve el siguiente error:
"S1000 [MySql] [ODBC 5.3(a) Driver] Access denied for user 'Spsuite'@'localhost' (using password: YES")

Y la única manera que se abre la base de datos sin problemas es pasando en la sentencia toda la cadena de conexión:
Set Conex = OpenConnection("SPSuite", rdDriverNoPrompt, False, "DRIVER={MySQL ODBC 5.3 Driver};SERVER=localhost;DATABASE=spsuite;USER=spsuite;PASSWORD=xxxx;OPTION=3")
No entiendo la razón por la cual MySql no permite abrir la base de datos con la misma sentencia que se utiliza para abrir cualquier otra base de datos, si los parámetros de la cadena de conexión se encuentran en el propio odbc. Porqué exige pasarlos en el código?
Si alguien se le ocurre algo.
Gracias desde ya


09-Oct-2015 11:21
Nacho Cabanes (+83)

Siento el retraso en contestar.

Cada base de de datos es un mundo y tiene sus propias peculiaridades, pero una vez que las conoces... el problema está resuelto. En el peor de los casos, basta con usar un IF para abrir la conexión de una forma u otra según el SGBD al que conectes.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)