【问题标题】:How to find the ODBC driver name for a connection string?如何查找连接字符串的 ODBC 驱动程序名称?
【发布时间】:2016-01-20 03:33:02
【问题描述】:

每当我使用带有完整连接字符串(而不仅仅是 DSN 条目)的 ODBC 驱动程序时,我经常会收到类似于此的错误

Data source name not found and no default driver specified

我有正确的连接字符串语法(或者互联网上这样说),但我怀疑我不知道我正在使用的当前版本的 ODBC 驱动程序的正确名称

如何找到 32 位或 64 位的正确名称?

【问题讨论】:

    标签: sql-server oracle postgresql odbc amazon-redshift


    【解决方案1】:

    使用 ODBC 数据源管理器应用程序。确保根据您的应用程序构建目标使用 32 位或 64 位版本。然后选择“文件 DSN”选项卡

    点击“添加”按钮,选择你已经安装的驱动

    然后点击“高级”按钮

    然后您可以复制并粘贴正确的驱动程序名称,并取消 ODBC 数据源管理器应用程序

    例如

    DRIVER={PostgreSQL ODBC Driver(UNICODE)}
    

    添加所需的其余参数,您将获得当前安装的驱动程序版本的有效 ODBC 连接字符串

    例如

    Driver={PostgreSQL ODBC Driver(UNICODE)};Server=ruru.nz;Port=5432;Database=TheInternet;Uid=tfd;Pwd=p455w0rd;
    

    享受:-)

    【讨论】:

    • 我按照这些步骤进行了大部分操作,但是您如何获取服务器、端口、数据库和 Uid?
    • 嗨@bernando_vialli,正如文章标题所说,这是“如何找到 ODBC 驱动程序名称”而不是如何获取数据库信息。如果您在网站上搜索正确的主题,您肯定会找到您要查找的内容。
    【解决方案2】:

    Get-OdbcDsn -Name "[dsn-name]" -DsnType "[system|user|file]" -Platform "64-bit"

    您也可以使用 powershell 来获取它。并且可能构建完整的连接字符串。

    $dsn = Get-OdbcDsn -Name "dsn-plus" -DsnType "user" -Platform "64-bit"
    $dsn
    $dsn.DriverName
    #$dsn.Attribute
    
    $connecton_string = 'driver="' + $dsn.DriverName + '";'
    foreach ($key in $dsn.Attribute.Keys) {
        if ([string]::IsNullOrWhiteSpace($dsn.Attribute[$key])) {
            $connecton_string = $connecton_string + $key + ";";
        } else {
            $connecton_string = $connecton_string + $key + "=" + $dsn.Attribute[$key] + ";";
        }
    }
    
    $connecton_string
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多