为什么会出现“找不到数据源名称且未指定默认驱动程序”以及如何解决此问题?

问题描述 投票:1回答:1

[当尝试在Windows上通过ODBC连接到数据库的程序时,出现以下错误:

[[Microsoft] [ODBC驱动程序管理器]找不到数据源名称,也未指定默认驱动程序。

我确定我的代码是正确的。它甚至可以在其他PC上运行。

为什么会出现此错误?以及我该如何解决?

database odbc
1个回答
2
投票

什么导致此错误?

简单地说,错误消息告诉您ODBC驱动程序管理器找不到您在连接字符串或DSN中指定的驱动程序。

这可能有3个常见原因:

  1. 您尝试使用的驱动程序未安装在系统上
  2. 已安装驱动程序,但是与您正在运行的代码的位数不匹配
  3. 您输入驱动程序名称时出错

如何检查系统上安装了哪些驱动程序?

您可以通过转到ODBC数据源管理器来检查系统上安装的驱动程序。要打开它,请按⊞Win + R,然后输入:odbcad32.exe。然后检查选项卡驱动程序中已安装的驱动程序。 Name列指示您应该在连接字符串或DSN中使用的确切名称。

如果您使用的是64位Windows,则仅列出安装在64位Windows上的64位驱动程序你的系统。要查看安装了哪些32位驱动程序,请按⊞Win + R,然后键入:C:\Windows\SysWOW64\odbcad32.exe,然后再次进入Drivers选项卡。

enter image description here

已安装驱动程序,但可能是位错误,我该怎么办?

然后,您有两种选择,要么调整正在运行程序的位数,要么安装具有不同位数的驱动程序。

Windows上默认安装的某些驱动程序只有32位版本。这些不能与64位程序一起使用。

您通常可以在任务管理器中确定程序在哪个位上运行。在Windows 10中,所有32位程序都在其名称后附加了(32位)。如果不存在,则您可能正在运行64位程序,并且大多数现代编程语言和环境默认情况下都在64位上运行,但允许您切换到32位。但是,不同编程语言的详细信息不在此问题的范围内。

如何确认我没有输入错误的驱动程序名称?

ODBC连接字符串看起来像这样:

DRIVER={DriverName};ParameterName1=ParameterValue1;ParameterNameN=ParameterValueN;

如果驱动程序名称部分可能包含特殊字符,则需要用大括号分隔,并且需要与ODBC数据源管理器中找到的已安装驱动程序名称完全匹配,包括空格和印刷字符,但大写除外。] >

请注意,对于已部署的代码,驱动程序必须

位于运行该代码的计算机/服务器上。

我没有驱动程序,或者位数不正确,在哪里可以找到合适的驱动程序?

取决于您要使用的驱动程序。

具有下载位置的通用驱动程序列表(所有32位和64位在同一URL上:]

© www.soinside.com 2019 - 2024. All rights reserved.