Visual Basic - VER LOS DSN!!!

Life is soft - evento anual de software empresarial
 
Vista:

VER LOS DSN!!!

Publicado por FER (26 intervenciones) el 24/09/2004 11:23:08
Necesito al iniciar mi aplicación sacar en un combo los DSN de mi equipo para poder seleccionar uno de ellos para arrancar la aplicacion utilizandolo.

Donde estan los nombres guardados para poder extraerlos??

Muchas gracias por adelantado
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:VER LOS DSN!!!

Publicado por Ariel (94 intervenciones) el 24/09/2004 22:24:54
Hola

Aqui te envio un ejemplo completo

Necesitas

1- 5 Label1
2- 2 ComboBox
3- 3 Text

Colocar los Label asi, en el mismo orden:

DSN:
Id. de Usuario:
Contraseña:
Controlador:
Servidor:

Colocar el Resto de los controles asi, en el mismo orden:

Combo1
Text1
Text2
Combo2
Text3

obviamente al lado de los label
Ejemplo:

DSN : Combo1
Id. de Usuario: Text1
....etc.

y el codigo es el siguiente:

'----------------------
Option Explicit

Private Declare Function SQLDataSources Lib "ODBC32.DLL" (ByVal henv&, ByVal fDirection%, ByVal szDSN$, ByVal cbDSNMax%, pcbDSN%, ByVal szDescription$, ByVal cbDescriptionMax%, pcbDescription%) As Integer
Private Declare Function SQLAllocEnv% Lib "ODBC32.DLL" (env&)
Const SQL_SUCCESS As Long = 0
Const SQL_FETCH_NEXT As Long = 1

Sub TomaDSN()
Dim i As Integer
Dim sDSNItem As String * 1024
Dim sDRVItem As String * 1024
Dim sDSN As String
Dim sDRV As String
Dim iDSNLen As Integer
Dim iDRVLen As Integer
Dim lHenv As Long 'controlador de entorno

On Error Resume Next
Combo1.AddItem "(Ninguno)"

'obtener los DSN
If SQLAllocEnv(lHenv) <> -1 Then
Do Until i <> SQL_SUCCESS
sDSNItem = Space$(1024)
sDRVItem = Space$(1024)
i = SQLDataSources(lHenv, SQL_FETCH_NEXT, sDSNItem, 1024, iDSNLen, sDRVItem, 1024, iDRVLen)
sDSN = Left$(sDSNItem, iDSNLen)
sDRV = Left$(sDRVItem, iDRVLen)

If sDSN <> Space(iDSNLen) Then
Combo1.AddItem sDSN
Combo2.AddItem sDRV
End If
Loop
End If
'quitar los duplicados
If Combo1.ListCount > 0 Then
With Combo2
If .ListCount > 1 Then
i = 0
While i < .ListCount
If .List(i) = .List(i + 1) Then
.RemoveItem (i)
Else
i = i + 1
End If
Wend
End If
End With
End If
Combo1.ListIndex = 0
End Sub

Private Sub Combo1_Click()
On Error Resume Next
If Combo1.Text = "(Ninguno)" Then
Text3.Enabled = True
Combo2.Enabled = True
Else
Text3.Enabled = False
Combo2.Enabled = False
End If
End Sub

Private Sub Form_Load()
Call TomaDSN
End Sub
'---------------------------------
Ahi tienes las DSN y los Driver.
Ahora solo necesitas tu creatividad para aplicarlos en tu sistema.

Espero que te sirva

Saludos

Ariel....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar