尝试在Windows上制作通过ODBC连接到数据库的程序时,出现以下错误:
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.
我确定我的代码是正确的。它甚至可以在其他PC上运行。
为什么会出现此错误?以及我该如何解决?
最佳答案
是什么导致此错误?
简而言之,该错误消息告诉您ODBC驱动程序管理器找不到您在连接字符串或DSN中指定的驱动程序。
这可能有3个常见原因:
如何检查系统上安装了哪些驱动程序?
您可以转到ODBC数据源管理器来检查系统上安装的驱动程序。要打开它,请按⊞Win + R,然后输入:
odbcad32.exe
。然后检查“驱动程序”选项卡以获取已安装的驱动程序。 “名称”列指示您应该在连接字符串或DSN中使用的确切名称。如果您使用的是64位Windows,则只会列出安装在64位Windows上的64位驱动程序
你的系统。要查看安装了哪些32位驱动程序,请按⊞Win + R,然后输入:
C:\Windows\SysWOW64\odbcad32.exe
,然后再次转到“驱动程序”选项卡。驱动程序已安装,但可能是错误的位,我该怎么办?
然后,您有两种选择,要么调整正在运行程序的位数,要么安装具有不同位数的驱动程序。
Windows默认情况下安装的某些驱动程序只有32位版本。这些不能与64位程序一起使用。
通常,您可以在任务管理器中确定程序在哪个位下运行。在Windows 10中,所有32位程序都在其名称后附加了(32位)。如果不存在,则您可能正在运行64位程序,并且大多数现代编程语言和环境默认情况下都在64位上运行,但允许您切换到32位。但是,不同编程语言的详细信息不在此问题的范围内。
如何确认我没有输入错误的驱动程序名称?
ODBC连接字符串如下所示:
DRIVER={DriverName};ParameterName1=ParameterValue1;ParameterNameN=ParameterValueN;
如果驱动程序名称部分可能包含特殊字符,则需要用大括号分隔,并且需要与ODBC数据源管理器中找到的已安装驱动程序名称完全匹配,包括空格和打印字符,但不包括大写字母。请注意,对于已部署的代码,驱动程序必须在运行该代码的计算机/服务器上存在。
我没有驱动程序,或者位错了,我该在哪里找到合适的驱动程序?
这取决于您要使用哪个驱动程序。
带有下载位置的通用驱动程序列表(在同一URL上的所有32位和64位):
如果未列出您要使用的驱动程序,则通常可以使用Google轻松找到该位置。
关于database - 为什么我得到 "Data source name not found and no default driver specified"并如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58571740/