Listing Available DSN / Drivers Installed

This code shows how to list the available DSN and Drivers installed on the computer.

screen-shot

The program works by utilizing the SQLDataSources API of the ODBC32.DLL.



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

    on error resume next
    cboDSNList.AddItem "(None)"

    'get the DSNs
    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   '---optional - driver
                                          '--- value returned
            End If
        Loop
    End If
    'remove the dups
    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
End Sub
'

Download Demo Project (2k)



Comments

  • Wonderful

    Posted by Legacy on 12/23/2003 12:00am

    Originally posted by: Rosa

    it works at the first time! I would like also know how to get the odbc list when you select the dsn. I will invesigate.

    Reply
  • Useful one

    Posted by Legacy on 11/22/2003 12:00am

    Originally posted by: Rakesh Sharma

    This is the utility really needed to trace a computer (which is not yours), when you are supposed to work on it.
    This will tell you all the things in use and you just may use them.

    Reply
  • Worked perfect

    Posted by Legacy on 05/01/2003 12:00am

    Originally posted by: Greg Dirst

    Thanks

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • U.S. companies are desperately trying to recruit and hire skilled software engineers and developers, but there is simply not enough quality talent to go around. Tiempo Development is a nearshore software development company. Our headquarters are in AZ, but we are a pioneer and leader in outsourcing to Mexico, based on our three software development centers there. We have a proven process and we are experts at providing our customers with powerful solutions. We transform ideas into reality.

  • When individual departments procure cloud service for their own use, they usually don't consider the hazardous organization-wide implications. Read this paper to learn best practices for setting up an internal, IT-based cloud brokerage function that service the entire organization. Find out how this approach enables you to retain top-down visibility and control of network security and manage the impact of cloud traffic on your WAN.

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date