如何找到连接字符串的ODBC驱动程序名称?

时间:2015-10-21 08:16:48

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

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

Data source name not found and no default driver specified

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

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

2 个答案:

答案 0 :(得分:4)

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

ODBC Data Source Administrator

单击“添加”按钮,然后选择已安装的驱动程序

"Add" button

然后点击“高级”按钮

"Advanced" button

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

e.g。

DRIVER={PostgreSQL ODBC Driver(UNICODE)}

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

e.g。

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

享受: - )

答案 1 :(得分:1)

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