从/或关于ODBC DSN获取信息

时间:2010-02-11 15:42:45

标签: odbc

当您知道DSN名称时,是否有从Odbc数据源获取信息?

示例,获取用户ID等

我需要打开一些dataSource的连接并执行一些命令。我唯一知道的是数据源名称(在ODBC数据源管理器中定义)和命令文本。

现在,如果我需要有关该数据源的更多信息,那么无论如何都要以编程方式获取该信息吗?也许是一个代表ODBC数据源的类?

tks

3 个答案:

答案 0 :(得分:0)

我同意Butterworth先生的评论,因为我不确定你在问什么,但你可以在注册表中找到一些信息:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\{DSN Name}

答案 1 :(得分:0)

有一整个C API to support ODBC。其他语言(你不说你正在使用哪一种语言)为此提供包装。只给出一个数据源名称,可能能够访问它所引用的数据 - 这取决于它是如何设置的。

答案 2 :(得分:0)

您可以从odbccp32.dll致电SQLGetPrivateProfileString Function以检索您要查找的信息。

在C#中导入DLL和函数如下所示:

    [DllImport("odbccp32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    private static extern int SQLGetPrivateProfileStringW(string lpszSection, string lpszEntry, string lpszDefault, char[] RetBuffer, int cbRetBuffer, string lpszFilename);

在VB.NET中看起来像这样:

    <DllImport("odbccp32.dll", SetLastError:=True, CharSet:=CharSet.Unicode)> _
    Private Shared Function SQLGetPrivateProfileStringW(lpszSection As String, lpszEntry As String, RetBuffer As Char(), cbRetBuffer As Integer, lpszFilename As String) As Integer