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

6
每当我使用带有完整连接字符串的ODBC驱动程序,而不仅仅是DSN条目时,经常会出现类似于以下错误的情况:
Data source name not found and no default driver specified

我有正确的连接字符串语法(至少互联网上说是这样),但我怀疑我不知道正在使用的ODBC驱动程序的当前版本的正确名称。
我该如何找到正确的名称,无论是32位还是64位?
2个回答

10

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

ODBC数据源管理器

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

"添加"按钮

然后点击“高级”按钮

"高级"按钮

然后你可以复制和粘贴正确的驱动程序名称,并退出ODBC数据源管理器应用程序。

例如:

DRIVER={PostgreSQL ODBC Driver(UNICODE)}
将剩余的必需参数添加到连接字符串中,就可以获得当前安装的驱动程序版本的有效ODBC连接字符串。
例如:
Driver={PostgreSQL ODBC Driver(UNICODE)};Server=ruru.nz;Port=5432;Database=TheInternet;Uid=tfd;Pwd=p455w0rd;

尽情享受 :-)


我按照大部分步骤进行了操作,但是如何获取服务器、端口、数据库和用户ID? - bernando_vialli
嗨@bernando_vialli,正如文章标题所述,这是“如何查找ODBC驱动程序名称”,而不是如何获取数据库信息。如果您在网站上搜索正确的主题,肯定会找到您要寻找的内容。 - Max Becerra

1

Get-OdbcDsn -Name "[dsn名称]" -DsnType "[系统|用户|文件]" -Platform "64位"

您也可以使用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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接