Cambio de valores ODBC

Mario P?z
05 de Febrero del 2004
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.

hdicasa
05 de Febrero del 2004
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