如何读出ODBC数据源所有的DSN名称?

chenkangli 2003-10-15 10:16:06
如何读出ODBC数据源所有的DSN名称?
...全文
192 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
道素 2003-10-16
  • 打赏
  • 举报
回复
Public Declare Function SQLDataSources Lib "ODBC32.DLL" _
(ByVal henv As Long, ByVal fDirection As Integer, ByVal szDSN As String, _
ByVal cbDSNMax As Integer, ByRef pcbDSN As Integer, ByVal szDescription As String, _
ByVal cbDescriptionMax As Integer, ByRef pcbDescription As Integer) As Long
Public Declare Function SQLAllocEnv Lib "ODBC32.DLL" (env As Long) As Integer


public 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 'Zugriffsnummer zur Umgebung

On Error Resume Next
cmbDataName.AddItem "(---)"
cmbDataDriver.AddItem "(---)"
'DSNs abrufen
If SQLAllocEnv(lHenv) <> -1 Then
Do Until i <> SQL_SUCCESS
sDSNItem = Space(1024)
sDRVItem = Space(1024)
' Aufruf der API Funktion zur Ausgabe der n?chsten ODBC
' Verbindung
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
cmbDataDriver.AddItem sDRV
cmbDataName.AddItem sDSN
End If
Loop
End If


End Sub

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧