【发布时间】:2018-04-21 18:35:08
【问题描述】:
我正在使用最近更新到 .NET 4.5 的旧应用程序。该应用程序一直在使用 DSN ODBC 连接。但是,在应用程序的情况下,它是从网络驱动器上的单个位置访问的,因此要求 DSN 没有意义,并且它可以简化部署和更新以使用无 DSN 连接字符串.我正在做一个基本的字符串:
Driver={SQL Server}; Server=; Database=; UID=; PWD=
我遇到的问题是应用程序编译为 32 位,但可以在 32 位或 64 位机器上使用。在 64 位机器上出现此错误:
指定的 DSN 包含驱动程序之间的体系结构不匹配 及应用
这实质上意味着它正在尝试将 64 位驱动程序用于 32 位应用程序。这很容易处理,只是 SQL Server 的驱动程序名称对于 32 位和 64 位似乎相同。那么如何才能在连接字符串中只指定 32 位驱动呢?
【问题讨论】:
-
This 应该有所帮助,即使它来自 Java perspactive
-
是的,这就是我在搜索中发现的。但是,这是用于设置 DSN 连接的 ODBC 实用程序。我想要实现的是无 DSN 连接,这意味着我可以完全绕过该实用程序。我在帖子中的连接字符串有效,但似乎不允许我指定位级别,在本例中为 32 位。
-
这是一篇讨论无 DSN 连接字符串的文章:databasejournal.com/features/mssql/article.php/1491011/…
-
@JarrodChristman,对于 32/64 位,无需更改 DSN 连接字符串;应自动使用适当的 ODBC 体系结构。我只能通过 DSN 连接(例如 64 位 DSN 和 x86 应用程序)重现拱形不匹配错误。您使用的是
System.Data.Odbc、ADODB还是其他?如果是 ADODB,ActiveX 是什么版本的? -
请确保您从不安装 64 位驱动程序版本。
标签: sql-server odbc database-connection 32-bit dsn