Foros del Web » Programación para mayores de 30 ;) » .NET »

Crear DSN MySQL mediante codigo

Estas en el tema de Crear DSN MySQL mediante codigo en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/06/2010, 19:31
Avatar de dargor  
Fecha de Ingreso: octubre-2009
Mensajes: 134
Antigüedad: 14 años, 6 meses
Puntos: 2
Crear DSN MySQL mediante codigo

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 original
  1. Public Class Form1
  2.     Private Declare Function SQLConfigDataSource Lib "ODBCCP32.DLL" ( _
  3.     ByVal hwndParent As Long, ByVal fRequest As Long, _
  4.     ByVal lpszDriver As String, ByVal lpszAttributes As String) As Long
  5.  
  6.  
  7.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  8.         Dim dl As Long                                 ' Valor devuelto por la función API
  9.        Dim sAttributes As String                  ' Aributos
  10.        Dim sDriver As String                       ' Nombre del controlador
  11.        Dim sDescription As String                ' Descripción del DSN
  12.        Dim sDsnName As String                  ' Nombre del DSN
  13.  
  14.         Const ODBC_ADD_SYS_DSN As Long = 4         ' Se creará un DSN de sistema
  15.        Const vbAPINull As Long = 0&                         ' Puntero NULL
  16.  
  17.         ' Establecemos los atributos necesarios
  18.        sDsnName = "Ejemplo_DSN_Sistema"
  19.         sDescription = "Nuevo DSN de sistema para SQL Server"
  20.         sDriver = "MySQL ODBC 5.1 Driver"
  21.  
  22.         ' Los pares de cadenas acabarán en valor Null
  23.        sAttributes = "DSN=Ejemplo_DSN_Sistema;Description=Nuevo_DSN_de_sistema;Server=LOCALHOST;" & _
  24.                     "User id=USER;Password=PASS;database=DATABASE;"
  25.  
  26.         ' Si deseamos utilizar la autenticación de Windows NT, deberemos de
  27.        ' especificarlo en la cadena de atributos
  28.        'sAttributes = sAttributes & "Trusted_Connection=True" & Chr(0)
  29.  
  30.         ' Creamos el nuevo origen de datos de usuario especificado.
  31.        ' Si deseamos que aparezca el cuadro de diálogo, tendremos que
  32.        ' especificar la propiedad «hWnd» del formulario donde se realiza
  33.        ' la llamada a la función API.
  34.        dl = SQLConfigDataSource(vbAPINull, ODBC_ADD_SYS_DSN, sDriver, sAttributes)
  35.  
  36.         If dl Then
  37.             MsgBox("Se ha creado el DSN de sistema.")
  38.         Else
  39.             MsgBox("No se ha podido crear el DSN de sistema.")
  40.         End If
  41.     End Sub
  42. End Class

Utilizo Visual Studio 2008 Profesional y lenguaje visual basic, ojala me puedan ayudar, lo agradeceria mucho.
  #2 (permalink)  
Antiguo 08/06/2010, 21:55
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Crear DSN MySQL mediante codigo

¿Y por qué razón necesitas que sea ODBC y no .Net?
Es prácticamente hacer un downgrade...
Además, ¿qué sentido tiene llamar a una DLL externa cuando el VS2008 ya incluye el Namespace ODBC?
A eso debes sumarle que MySQL también tiene su propio driver de ODBC.

Dale una leída a esta página, tal vez te ayude: http://www.connectionstrings.com/mysql
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/06/2010, 22:37
Avatar de dargor  
Fecha de Ingreso: octubre-2009
Mensajes: 134
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Crear DSN MySQL mediante codigo

La razon porque necesitaba odbc es que al querer hacer reportes en cristal no me salían los datos en el reporte, solo con odbc, los datos los mandaba a llamar desde el dataset peeeeero analizando un poco me di cuenta que no habia cargado el dataset antes de presentar el reporte, era por eso que me venia vacio, pero ya lo resolvi y gracias por la respuesta que tambien me sirvio de guia.
En caso alguien mas tenga esta duda o problema dejo el codigo:

Código vb:
Ver original
  1. Dim rpt As New CrystalReport5() 'Tu reporte ya creado.
  2.        Dim myConnection As MySqlConnection
  3.         Dim MyCommand As New MySqlCommand
  4.         Dim myDA As New MySqlDataAdapter
  5.         Dim myDS As New MIBASEDataSet() 'tu dataset ya creado.
  6.  
  7.         Try
  8.  
  9.             myConnection = New MySqlConnection("server=localhost;user id=USER;password=PASS;database=BASEDEDATOS;")
  10.             MyCommand.Connection = myConnection
  11.             MyCommand.CommandText = "SELECT * FROM TABLA"
  12.             MyCommand.CommandType = CommandType.Text
  13.             myDA.SelectCommand = MyCommand
  14.  
  15.             myDA.Fill(myDS, "TABLA")
  16.             rpt.SetDataSource(myDS)
  17.             CrystalReportViewer1.ReportSource = rpt
  18.  
  19.  
  20.         Catch Excep As Exception
  21.             MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
  22.         End Try

Todo esto dentro de un evento, en mi caso evento load de un formulario.

En caso alguien pueda ayudarme con la creación de odbc por código seria bienvenido, no esta demás aprender.
  #4 (permalink)  
Antiguo 09/06/2010, 05:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Crear DSN MySQL mediante codigo

Eso esta muuucho mejor.

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: crear, dsn, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:53.