代码之家  ›  专栏  ›  技术社区  ›  Erik A

为什么找不到数据源名称,也没有指定默认驱动程序,如何修复?

  •  0
  • Erik A  · 技术社区  · 6 年前

    当我试图在Windows上制作一个通过ODBC连接到数据库的程序时,我遇到了以下错误:

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

    我确信我的密码是正确的。它甚至可以在另一台电脑上运行。

    1 回复  |  直到 6 年前
        1
  •  7
  •   Erik A    6 年前

    是什么导致了这个错误?

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

    这可能有3个常见原因:

    1. 驱动程序已安装,但是,它与您正在运行的代码的位不匹配
    2. 键入驱动程序名称时出错

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

    您可以通过转到ODBC数据源管理员来检查系统上安装的驱动程序。要打开,请按 + R ,然后键入: odbcad32.exe 司机 姓名 列指示应在连接字符串或DSN中使用的确切名称。

    如果您在64位Windows上,则只列出安装在上的64位驱动程序 你的系统。要查看安装了哪些32位驱动程序,请按 R ,然后键入: C:\Windows\SysWOW64\odbcad32.exe 司机 再来一次。

    enter image description here

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

    然后,您有两个选择,要么调整程序运行的位,要么安装一个不同位的驱动程序。

    一些默认安装在Windows上的驱动程序只有32位的变体。这些不能用于64位程序。

    通常,您可以在任务管理器中确定程序在哪个位下运行。在Windows10中,所有32位程序的名称后面都附加了(32位)。如果没有,您可能运行的是64位程序,大多数现代编程语言和环境默认运行在64位,但允许您切换到32位。但是,不同编程语言的细节不在这个问题的范围之内。

    我怎样才能确认我没有打错司机的名字?

    ODBC连接字符串如下所示:

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

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

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

    我没有车手,或者车位不对,我从哪里找到合适的?

    这取决于你想用哪个驱动程序。

    具有下载位置的常见驱动程序列表(所有32位和64位位于同一URL):

    如果你想使用的驱动程序没有列出,那么使用Google通常很容易找到这个位置。