调用下面函数获得DSN名称Private Declare Function SQLDataSources Lib "ODBC32.DLL" (ByVal henv&, ByVal fDirection%, ByVal szDSN$, ByVal cbDSNMax%, pcbDSN%, ByVal szDescription$, ByVal cbDescriptionMax%, pcbDescription%) As Integer

解决方案 »

  1.   

    我的意思是说:
        别人在系统里设置了ODBC数据源,我在vb程序里怎么样才能得到他设置的ODBC数据源的路径和文件名!
        我刚开始想通过调用注册表的信息来获得数据源的路径,后来发现不行,各位大侠请帮帮我!有没有别的方法?
      

  2.   

    你可以参见MSDN里的可视化数据管理器的源代码看看它是怎么对ODBC来管理的
      

  3.   

    具体用法:
    '获得 DSNs
        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  
        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
      

  4.   

    to   xianfeihong(飞人) 
       那样只是得到数据源的名称,而我的程序中数据源的名称(如Order.mdb)是已知的,最关键是ODBC连接的已知数据源(Order.mdb)的路径怎么办法得到? 大家帮帮我,我已经弄了一个多星期了,老板说这么简单的一个问题都解决不了,我快要遭殃了!!!!
      

  5.   

    大哥我来也,我给你个例子,我的mail:[email protected]