ZjiÜt∞nφ nainstalovan²ch ovladaΦ∙ a DSN

Postup:
Na formulß° p°idejte dva listboxy a tlaΦφtko. V deklaraΦnφ Φßsti formulß°e zapiÜte:

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

Prvnφ listbox pojmenujte cboDSNList a druh² cboDrivers. Na udßlost Click tlaΦφtka zapiÜte:

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 'handle to the environment

On Error Resume Next
cboDSNList.AddItem "(None)"

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
         cboDrivers.AddItem sDRV 
      End If

   Loop

End If

If cboDSNList.ListCount > 0 Then
   With cboDrivers
      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

cboDSNList.ListIndex = 0

Spus¥te projekt a klikn∞te na tlaΦφtko.

Zp∞t

Autor: The Bozena