Saludos a todos, expongo mi dificultad porque he pasado todo el dia buscando y todavía no encuentro solución a mi problema y es importante que lo resuelva.
Necesito crear DSN de sistema para MySQL mediante código para utilizar con reporteria, debe ser ODBC, no con el conector .net de mysql. he encontrado este codigo que es para SQL Server y trate de adaptarlo pero me tira el siguiente error:
"Intento de leer o escribir en la memoria protegida. A menudo, esto indica que hay otra memoria dañada." y no, mi ram no creo que este dañada, he leído que ese mensaje se ha presentado a otros que han intentado hacer lo mismo. este es el codigo:
Código vb:
Ver originalPublic Class Form1
Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" ( _
ByVal hwndParent As Long, ByVal fRequest As Long, _
ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
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
Const ODBC_ADD_SYS_DSN As Long = 4 ' Se creará un DSN de sistema
Const vbAPINull As Long = 0& ' Puntero NULL
' Establecemos los atributos necesarios
sDsnName = "Ejemplo_DSN_Sistema"
sDescription = "Nuevo DSN de sistema para SQL Server"
sDriver = "MySQL ODBC 5.1 Driver"
' Los pares de cadenas acabarán en valor Null
sAttributes = "DSN=Ejemplo_DSN_Sistema;Description=Nuevo_DSN_de_sistema;Server=LOCALHOST;" & _
"User id=USER;Password=PASS;database=DATABASE;"
' 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
MsgBox("Se ha creado el DSN de sistema.")
Else
MsgBox("No se ha podido crear el DSN de sistema.")
End If
End Sub
End Class
Utilizo Visual Studio 2008 Profesional y lenguaje visual basic, ojala me puedan ayudar, lo agradeceria mucho.