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 original
Public 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.