MYSQL CONTRA VISUAL BASIC
Me gustarÃa plantear una serie de preguntas sobre esta base de datos, al atacarla desde Visual Basic 6 en un servidor W2003:
- Hay 2 drivers... myodbc lo tengo muy controlado, y utiliza ADO. He leido que myoledb al ser nativo es más eficiente y rápido, pero... ¿Por qué?¿funciona en su versión 3 con mysql v.4.1.x?Al intentar cualquier conexión, desde vb, con un connection string usando el objeto connection de ADO, y mediante código, al ejecutar, me aparece un formulario en el que he de volver a colocar los datos, "MyOleDB Data Source Name Setup" es su nombre, pero no conecta y devuelve error a pesar de que los datos son muy logicamente correctos... ¿Que puedo hacer con myoledb si la base de datos funciona correctamente, y la conecto desde otras aplicaciones y a través de myodbc?¿Soporta Myoledb campos text o bigint?¿Que beneficios o limitaciones me darÃa myoledb si consiguiera poder usarlo con mysql 4.1.x?
-¿mysql es una buena base de datos bajo un servidor Windows 2003 server?¿En un servidor como éste, tiene limitaciones de algún tipo?
- Hay 2 drivers... myodbc lo tengo muy controlado, y utiliza ADO. He leido que myoledb al ser nativo es más eficiente y rápido, pero... ¿Por qué?¿funciona en su versión 3 con mysql v.4.1.x?Al intentar cualquier conexión, desde vb, con un connection string usando el objeto connection de ADO, y mediante código, al ejecutar, me aparece un formulario en el que he de volver a colocar los datos, "MyOleDB Data Source Name Setup" es su nombre, pero no conecta y devuelve error a pesar de que los datos son muy logicamente correctos... ¿Que puedo hacer con myoledb si la base de datos funciona correctamente, y la conecto desde otras aplicaciones y a través de myodbc?¿Soporta Myoledb campos text o bigint?¿Que beneficios o limitaciones me darÃa myoledb si consiguiera poder usarlo con mysql 4.1.x?
-¿mysql es una buena base de datos bajo un servidor Windows 2003 server?¿En un servidor como éste, tiene limitaciones de algún tipo?
Primero create el DSN por código:
Sub crearDSN()
Dim dl As Long ' Valor devuelto por la función API
Dim sAttributes As String ' Aributos
Dim sDriver As String ' Nombre del controlador
Dim sDescription As String ' Descripción del DSN
Dim sDsnName As String ' Nombre del DSN
On Error GoTo errorDSN
' Establecemos los atributos necesarios
sDsnName = "HDPU"
sDescription = "DSN de sistema para MySQL y HDPU"
sDriver = "MySQL ODBC 3.51 Driver"
' Los pares de cadenas acabarán en valor Null
sAttributes = "DSN=" & sDsnName & Chr(0)
sAttributes = sAttributes & "Server=localhost" & Chr$(0)
sAttributes = sAttributes & "User=root" & Chr$(0)
sAttributes = sAttributes & "Description=" & sDescription & Chr(0)
sAttributes = sAttributes & "Database=informacion" & Chr(0)
' Si deseamos utilizar la autenticación de Windows NT, deberemos de
' especificarlo en la cadena de atributos
sAttributes = sAttributes & "Trusted_Connection=True" & Chr(0)
' Creamos el nuevo origen de datos de usuario especificado.
' Si deseamos que aparezca el cuadro de diálogo, tendremos que
' especificar la propiedad «hWnd» del formulario donde se realiza
' la llamada a la función API.
dl = SQLConfigDataSource(vbAPINull, ODBC_ADD_SYS_DSN, sDriver, sAttributes)
If dl Then
'Se ha creado bien
Else
MsgBox "Ha ocurrido un error mientras se creaba el DSN de Sistema para MySQL. Posiblemente necesite tener permisos de Aministrador en su máquina." & vbCrLf & "Consulte con el Aministrador de su equipo", vbCritical, "Error"
End
End If
Exit Sub
'ERROR
errorDSN:
MsgBox "Ha ocurrido un error mientras se creaba el DSN de Sistema para MySQL. Posiblemente necesite tener permisos de Aministrador en su máquina." & vbCrLf & "Consulte con el Aministrador de su equipo", vbCritical, "Error"
End
End Sub
Después arrancas el servicio
Lpid = Shell("c:MySQLbinmysqld-nt localhost root")
Sleep 4000
Después haces la conexión
With oConexionInformacion
.ConnectionString = "driver={MySQL ODBC 3.51 Driver};server=localhost;database=informacion;user=root"
.CursorLocation = adUseClient
.Open oConexionInformacion
End With
y a trabajar con ADO ;-)
Sub crearDSN()
Dim dl As Long ' Valor devuelto por la función API
Dim sAttributes As String ' Aributos
Dim sDriver As String ' Nombre del controlador
Dim sDescription As String ' Descripción del DSN
Dim sDsnName As String ' Nombre del DSN
On Error GoTo errorDSN
' Establecemos los atributos necesarios
sDsnName = "HDPU"
sDescription = "DSN de sistema para MySQL y HDPU"
sDriver = "MySQL ODBC 3.51 Driver"
' Los pares de cadenas acabarán en valor Null
sAttributes = "DSN=" & sDsnName & Chr(0)
sAttributes = sAttributes & "Server=localhost" & Chr$(0)
sAttributes = sAttributes & "User=root" & Chr$(0)
sAttributes = sAttributes & "Description=" & sDescription & Chr(0)
sAttributes = sAttributes & "Database=informacion" & Chr(0)
' Si deseamos utilizar la autenticación de Windows NT, deberemos de
' especificarlo en la cadena de atributos
sAttributes = sAttributes & "Trusted_Connection=True" & Chr(0)
' Creamos el nuevo origen de datos de usuario especificado.
' Si deseamos que aparezca el cuadro de diálogo, tendremos que
' especificar la propiedad «hWnd» del formulario donde se realiza
' la llamada a la función API.
dl = SQLConfigDataSource(vbAPINull, ODBC_ADD_SYS_DSN, sDriver, sAttributes)
If dl Then
'Se ha creado bien
Else
MsgBox "Ha ocurrido un error mientras se creaba el DSN de Sistema para MySQL. Posiblemente necesite tener permisos de Aministrador en su máquina." & vbCrLf & "Consulte con el Aministrador de su equipo", vbCritical, "Error"
End
End If
Exit Sub
'ERROR
errorDSN:
MsgBox "Ha ocurrido un error mientras se creaba el DSN de Sistema para MySQL. Posiblemente necesite tener permisos de Aministrador en su máquina." & vbCrLf & "Consulte con el Aministrador de su equipo", vbCritical, "Error"
End
End Sub
Después arrancas el servicio
Lpid = Shell("c:MySQLbinmysqld-nt localhost root")
Sleep 4000
Después haces la conexión
With oConexionInformacion
.ConnectionString = "driver={MySQL ODBC 3.51 Driver};server=localhost;database=informacion;user=root"
.CursorLocation = adUseClient
.Open oConexionInformacion
End With
y a trabajar con ADO ;-)
