MYSQL CONTRA VISUAL BASIC

feanorknd
26 de Abril del 2005
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?

sdemingo
26 de Abril del 2005
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 ;-)