当尝试在 Windows 上编写一个通过 ODBC 连接到数据库的程序时,出现以下错误:
[Microsoft][ODBC 驱动程序管理器] 未找到数据源名称且未指定默认驱动程序。
我确信我的代码是正确的。它甚至可以在另一台电脑上运行。
为什么我会收到此错误?我该如何修复它?
在设计模式下,已将值设置为属性 TFDConnection.ConnectionDefName 必须为空。
TFDConnection.ConnectionDefName
简单地说,错误消息告诉您 ODBC 驱动程序管理器找不到您在连接字符串或 DSN 中指定的驱动程序。
这可能有 3 个常见原因:
您可以通过转至 ODBC 数据源管理器来检查系统上安装的驱动程序。要打开它,请按 ⊞ Win + R,然后输入:odbcad32.exe。然后检查选项卡驱动程序以获取已安装的驱动程序。 名称列指示您应在连接字符串或 DSN 中使用的确切名称。
odbcad32.exe
如果您使用的是 64 位 Windows,则仅列出安装在 你的系统。要查看安装了哪些 32 位驱动程序,请按 ⊞ Win + R,然后输入:C:\Windows\SysWOW64\odbcad32.exe code>,然后再次转到“驱动程序”选项卡。
C:\Windows\SysWOW64\odbcad32.exe code>,然后再次转到“驱动程序”选项卡。
然后,您有两个选择,要么调整程序运行的位数,要么安装具有不同位数的驱动程序。
Windows 上默认安装的某些驱动程序仅具有 32 位变体。这些不能与 64 位程序一起使用。
您通常可以在任务管理器中识别程序正在运行的位数。在 Windows 10 中,所有 32 位程序的名称后都会附加 (32-bit)。如果不存在,则您可能正在运行 64 位程序,并且大多数现代编程语言和环境默认在 64 位上运行,但允许您切换到 32 位。但是,不同编程语言的具体细节超出了本问题的范围。
ODBC 连接字符串如下所示:
DRIVER={DriverName};ParameterName1=ParameterValue1;ParameterNameN=ParameterValueN;
如果驱动程序名称部分可能包含特殊字符,则需要用大括号分隔,并且需要与已安装的驱动程序名称完全匹配(如 ODBC 数据源管理器中所示),包括空格和印刷字符,但不包括大写字母。
请注意,对于已部署的代码,驱动程序必须存在于运行代码的计算机/服务器上。
这取决于您要使用哪个驱动程序。
常见驱动程序列表及下载位置(所有 32 位和 64 位均位于同一 URL):
如果您要使用的驱动程序未列出,通常可以使用 Google 轻松找到该位置。
在设计模式下,已将值设置为属性
TFDConnection.ConnectionDefName
必须为空。什么原因导致此错误?
简单地说,错误消息告诉您 ODBC 驱动程序管理器找不到您在连接字符串或 DSN 中指定的驱动程序。
这可能有 3 个常见原因:
如何检查我的系统上安装了哪些驱动程序?
您可以通过转至 ODBC 数据源管理器来检查系统上安装的驱动程序。要打开它,请按 ⊞ Win + R,然后输入:
odbcad32.exe
。然后检查选项卡驱动程序以获取已安装的驱动程序。 名称列指示您应在连接字符串或 DSN 中使用的确切名称。如果您使用的是 64 位 Windows,则仅列出安装在 你的系统。要查看安装了哪些 32 位驱动程序,请按 ⊞ Win + R,然后输入:
C:\Windows\SysWOW64\odbcad32.exe code>,然后再次转到“驱动程序”选项卡。
驱动程序已安装,但可能位数错误,我该怎么办?
然后,您有两个选择,要么调整程序运行的位数,要么安装具有不同位数的驱动程序。
Windows 上默认安装的某些驱动程序仅具有 32 位变体。这些不能与 64 位程序一起使用。
您通常可以在任务管理器中识别程序正在运行的位数。在 Windows 10 中,所有 32 位程序的名称后都会附加 (32-bit)。如果不存在,则您可能正在运行 64 位程序,并且大多数现代编程语言和环境默认在 64 位上运行,但允许您切换到 32 位。但是,不同编程语言的具体细节超出了本问题的范围。
如何验证我没有输错驱动程序名称?
ODBC 连接字符串如下所示:
如果驱动程序名称部分可能包含特殊字符,则需要用大括号分隔,并且需要与已安装的驱动程序名称完全匹配(如 ODBC 数据源管理器中所示),包括空格和印刷字符,但不包括大写字母。
请注意,对于已部署的代码,驱动程序必须存在于运行代码的计算机/服务器上。
我没有驱动程序,或者位数错误,我在哪里可以获得正确的驱动程序?
这取决于您要使用哪个驱动程序。
常见驱动程序列表及下载位置(所有 32 位和 64 位均位于同一 URL):
如果您要使用的驱动程序未列出,通常可以使用 Google 轻松找到该位置。