Cambio de valores ODBC
Disculpen la molestia, quisiera que alguien me ayudara con lo siguiente, yo ya intente y no he podido hacerlo:
Deseo cambiar la configuracion de un DSN con una aplicacion en VB, es decir, que yo no deseo tener varios ODBC sino uno mismo y a este cambiarle los valores desde mi aplicaciòn, otra solucion creo que seria crear DSN de archivo desde mi aplicacion para poder sobreescribirlo pero no se como, de antemano muchas gracias y saludos.
Deseo cambiar la configuracion de un DSN con una aplicacion en VB, es decir, que yo no deseo tener varios ODBC sino uno mismo y a este cambiarle los valores desde mi aplicaciòn, otra solucion creo que seria crear DSN de archivo desde mi aplicacion para poder sobreescribirlo pero no se como, de antemano muchas gracias y saludos.
Mario:
Te mando un codigo con el que vas a poder agregar, modificar o eliminar un DSN. Espero te sirva!
Sds.
Option Explicit
'Declaración de constantes
Private Const ODBC_ADD_DSN = 1 ' Agrega un data source
Private Const ODBC_CONFIG_DSN = 2 ' Configura (edit) data source
Private Const ODBC_REMOVE_DSN = 3 ' Elimina data source
Private Const vbAPINull As Long = 0 'NULL Pointer
'Declaración de la Función
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
Function AddModifDSN(BaseDatos As String) As Boolean
Dim intRet As Long
Dim strDriver As String
Dim strAttributes As String
strDriver = "Microsoft Access Driver (*.mdb)"
'Setea el driver a MS Access.
strAttributes = strAttributes & "DESCRIPTION=Prueba" & Chr$(0)
'Setea la Descripción del DSN
strAttributes = strAttributes & "DSN=Congresos" & Chr$(0)
'Setea el nombre que se le va a dar al DSN
strAttributes = strAttributes & "DBQ=" & BaseDatos & Chr$(0)
'Establece la base de datos a la que se conecta. (Ruta completa)
intRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, _
strDriver, strAttributes)
'Finalmente, crea, modifica o elimina el DSN
AddModifDSN = intRet
If intRet Then
MsgBox "DSN Created"
Else
MsgBox "Create Failed"
End If
End Function
Function DeleteDSN() As Boolean
Dim intRet As Long
Dim strDriver As String
Dim strAttributes As String
strDriver = "Microsoft Access Driver (*.mdb)"
'Setea el driver a MS Access.
strAttributes = strAttributes & "DSN=Congresos" & Chr$(0)
'Setea el nombre del DSN que se eliminará
intRet = SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, _
strDriver, strAttributes)
'Elimina el DSN
If intRet Then
MsgBox "DSN Deleted"
Else
MsgBox "Delete Failed"
End If
End Function
Te mando un codigo con el que vas a poder agregar, modificar o eliminar un DSN. Espero te sirva!
Sds.
Option Explicit
'Declaración de constantes
Private Const ODBC_ADD_DSN = 1 ' Agrega un data source
Private Const ODBC_CONFIG_DSN = 2 ' Configura (edit) data source
Private Const ODBC_REMOVE_DSN = 3 ' Elimina data source
Private Const vbAPINull As Long = 0 'NULL Pointer
'Declaración de la Función
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
Function AddModifDSN(BaseDatos As String) As Boolean
Dim intRet As Long
Dim strDriver As String
Dim strAttributes As String
strDriver = "Microsoft Access Driver (*.mdb)"
'Setea el driver a MS Access.
strAttributes = strAttributes & "DESCRIPTION=Prueba" & Chr$(0)
'Setea la Descripción del DSN
strAttributes = strAttributes & "DSN=Congresos" & Chr$(0)
'Setea el nombre que se le va a dar al DSN
strAttributes = strAttributes & "DBQ=" & BaseDatos & Chr$(0)
'Establece la base de datos a la que se conecta. (Ruta completa)
intRet = SQLConfigDataSource(vbAPINull, ODBC_ADD_DSN, _
strDriver, strAttributes)
'Finalmente, crea, modifica o elimina el DSN
AddModifDSN = intRet
If intRet Then
MsgBox "DSN Created"
Else
MsgBox "Create Failed"
End If
End Function
Function DeleteDSN() As Boolean
Dim intRet As Long
Dim strDriver As String
Dim strAttributes As String
strDriver = "Microsoft Access Driver (*.mdb)"
'Setea el driver a MS Access.
strAttributes = strAttributes & "DSN=Congresos" & Chr$(0)
'Setea el nombre del DSN que se eliminará
intRet = SQLConfigDataSource(vbAPINull, ODBC_REMOVE_DSN, _
strDriver, strAttributes)
'Elimina el DSN
If intRet Then
MsgBox "DSN Deleted"
Else
MsgBox "Delete Failed"
End If
End Function
