mike2145
May 10th, 2001, 04:48 AM
Can anyone tell me the code needed from VB6 to access and bring back the windows installed OBDC Drivers ??
Thanks
Thanks
|
Click to See Complete Forum and Search --> : Getting System Info mike2145 May 10th, 2001, 04:48 AM Can anyone tell me the code needed from VB6 to access and bring back the windows installed OBDC Drivers ?? Thanks Iouri May 10th, 2001, 07:06 AM 'That is John Pirkey's code. All credits are his. 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 lstDSN.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 lstDSN.AddItem sDSN lstDrivers.AddItem sDRV '---optional - driver value returned End If Loop End If 'remove the dups If lstDSN.ListCount > 0 Then With lstDrivers 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 lstDSN.ListIndex = 0 End Sub Private Sub Form_Load() GetDSNsAndDrivers On Error Resume Next lstDSN.ListIndex = 0 lstDrivers.ListIndex = 0 End Sub Iouri Boutchkine iouri@hotsheet.com codeguru.com
Copyright Internet.com Inc., All Rights Reserved. |