每当我使用带有完整连接字符串的ODBC驱动程序而不仅仅是DSN条目时,我经常会收到与此类似的错误
Data source name not found and no default driver specified
我有正确的连接字符串语法(或Internet说的那样),但我怀疑我不知道我正在使用的ODBC驱动程序的当前版本的正确名称
如何找到32位或64位的正确名称?
答案 0 :(得分:4)
使用ODBC数据源管理器应用程序。确保使用32位或64位版本,具体取决于您的应用程序构建目标。然后选择“文件DSN”选项卡
单击“添加”按钮,然后选择已安装的驱动程序
然后点击“高级”按钮
然后,您可以复制并粘贴正确的驱动程序名称,并取消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