• Lunes 18 de Noviembre de 2024, 01:42

Autor Tema:  Re: conexion odbc existente  (Leído 1241 veces)

arjmasar

  • Nuevo Miembro
  • *
  • Mensajes: 20
    • Ver Perfil
Re: conexion odbc existente
« en: Jueves 28 de Noviembre de 2002, 20:25 »
0
hola, alguien me puede ayudar???, necesito saber como puedo hacer para que mi aplicación revise si existe una conexion odbc en el datasource de windows 2000?????....de antemano muchisimas gracias....salu2

Jose Arriagada

  • Miembro MUY activo
  • ***
  • Mensajes: 373
    • Ver Perfil
conexion odbc existente
« Respuesta #1 en: Jueves 28 de Noviembre de 2002, 20:34 »
0
El codigo que te adjunto, lo debes poner completo en un form:
Para ello, agrega un combobox y ponle de nombre cboDSNList y te entregara todos los DNS de tu equipo.

Solo tienes que agregar el codigo que requieras para buscar un DNS en particular, eso es pega facil, espero te sirva.



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


Private Sub Form_Load()
GetDSNsAndDrivers
End Sub

Sub GetDSNsAndDrivers()
    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

    On Error Resume Next
   
    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
                cboDSNList.AddItem sDSN
            End If
        Loop
    End If
End Sub