Beim Versuch, unter Windows ein Programm zu schreiben, das über ODBC eine Verbindung zu einer Datenbank herstellt, erhalte ich die folgende Fehlermeldung:
[Microsoft][ODBC-Treibermanager] Datenquellenname nicht gefunden und kein Standardtreiber angegeben.
Ich bin sicher, dass mein Code korrekt ist. Es kann sogar auf einem anderen Computer ausgeführt werden.
Warum erhalte ich diesen Fehler? Wie kann ich es reparieren?
在设计模式下,已将值设置为属性
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 轻松找到该位置。