08/03/2016, 09:52
|
| | Fecha de Ingreso: mayo-2008
Mensajes: 224
Antigüedad: 16 años, 8 meses Puntos: 4 | |
Respuesta: Recorrer DNS ODBC Vb.net - Vs2015 Buscando, buscando encontre algo.
Pase a comentario algunas lineas que para mi eran obsoletas.
Probado en VB.2015 y funciona.
Esto esta corriendo en 32 todavía no probé en 64, por si hay que modificar algunas librerías.
Para el que le sirva.
Module buscDNS
'para tipo de DNS (ODBC)
Public Enum DataSourceType
System
User
End Enum
' Obtiene todos los data sources (orígenes de datos) del sistema
Public Function obtenerDataSourcesSistema() As System.Collections.SortedList
Dim listaODBC As New System.Collections.SortedList()
Dim reg As Microsoft.Win32.RegistryKey = (Microsoft.Win32.Registry.LocalMachine).OpenSubKey ("Software")
If reg IsNot Nothing Then
reg = reg.OpenSubKey("ODBC")
If reg IsNot Nothing Then
reg = reg.OpenSubKey("ODBC.INI")
If reg IsNot Nothing Then
reg = reg.OpenSubKey("ODBC Data Sources")
If reg IsNot Nothing Then
' Obtener todas las entradas DSN
'definidas en DSN_LOC_IN_REGISTRY
For Each sName As String In reg.GetValueNames()
listaODBC.Add(sName, DataSourceType.System)
Next
End If
Try
reg.Close()
' ignorar un posible error
Catch
End Try
End If
End If
End If
Return listaODBC
End Function
' Obtiene todos los data sources (orígenes de datos) del usuario
Public Function obtenerDataSourcesUsuario() As SortedList
Dim listaODBC As New SortedList()
Dim reg As Microsoft.Win32.RegistryKey = (Microsoft.Win32.Registry.CurrentUser).OpenSubKey( "Software")
If reg IsNot Nothing Then
reg = reg.OpenSubKey("ODBC")
If reg IsNot Nothing Then
reg = reg.OpenSubKey("ODBC.INI")
If reg IsNot Nothing Then
reg = reg.OpenSubKey("ODBC Data Sources")
If reg IsNot Nothing Then
' Obtener todas las entradas DSN
' definidas en DSN_LOC_IN_REGISTRY
For Each sName As String In reg.GetValueNames()
listaODBC.Add(sName, DataSourceType.User)
Next
End If
Try
reg.Close()
' ignorar un posible error
Catch
End Try
End If
End If
End If
Return listaODBC
End Function
Public Function muestraODBC()
Dim listaODBC As SortedList = New System.Collections.SortedList()
'lsODBC.Items.Clear()
'listaODBC = obtenerDataSourcesSistema()
'For Each key As DictionaryEntry In listaODBC
'Console.Write(key.Key.ToString() & vbCrLf)
''lsODBC.Items.Add(key.Key.ToString())
'Next
listaODBC = obtenerDataSourcesUsuario()
Dim resultado As Integer = 0
For Each key As DictionaryEntry In listaODBC
'lsODBC.Items.Add(key.Key.ToString())
If key.Key.ToString = "nombre DNS USUARIO que estoy buscando" Then
resultado = resultado + 1
End If
Next
If resultado = 0 Then
Return False
Else
Return True
End If
End Function
End Module |