使用SQL Server 2012的Windows 10 64位ADODB连接失败

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用SQL Server 2012的Windows 10 64位ADODB连接失败相关的知识,希望对你有一定的参考价值。

我们的VB6应用程序目前部署在带有SQL Server 2008的Windows 7 32位上,并且运行正常。

我们最近正在使用SQL Server 2012迁移到Windows 10 64位,以下引发错误:

Set conn = CreateObject("ADODB.Connection")
conn.CommandTimeout = 3600 ' 1 hour
conn.Open "DSN=MYDSN" => Error occurs here 

DSN已经过独立测试,可以很好地连接到SQL服务器

错误:DNS数据= Sql Server&32位或64位ODBC数据源:3709,连接不能用于执行此操作。在此上下文中它是关闭的或无效的。

DNS数据源= SQL Server Native Client 11和32位ODBC数据源:3709,连接不能用于执行此操作。在此上下文中它是关闭的或无效的

DNS数据源:SQL Server Native Client 11和64位ODBC数据源:-2147217843,[Microsoft] [SQL Server Native Client 11.0] [SQL Server]无法打开登录请求的数据库“ClientDatabase”。登录失败

任何输入都是值得赞赏的。

答案

我遇到过同样的问题。在新的Windows 10安装上使用VBA运行相同的Excel工作簿后,我的ADODB连接无法正常工作。然后我记得当我从Windows 7迁移到Windows 8.1时也发生了同样的事情。

两种情况下的解决方案是,64位版本的ODBC根本不能开箱即用(我不知道为什么,老实说,我没有费心去调试这个)。

我知道你说你尝试过32位版本,但在尝试32位之前你真的删除了64位的所有痕迹吗?显然他们互相冲突。

Try this steps:

  1. 删除使用相关64位ODBC驱动程序的任何64位DSN。从ODBC数据源(64位)控制面板执行此操作
  2. 卸载64位驱动程序。
  3. 安装32位驱动程序。
  4. 配置DSN(显然来自ODBC数据源(32位)控制面板)

再试一次...

我的问题是在Excel中的VBA和连接使用mysql ODBC驱动程序连接到MySql数据库,但它可能是同样的问题。

以上是关于使用SQL Server 2012的Windows 10 64位ADODB连接失败的主要内容,如果未能解决你的问题,请参考以下文章

windows server2012 r2能安装sqlserver2008 R2吗

windows 2012 r2怎么安装sql server 2008 r2

中文版sql server 2012是否只能够安装在中文版的windows server 2012上?

是否可以使用 Pymssql 通过域(Windows)用户帐户远程访问 SQL Server 2012

使用SQL Server 2012的Windows 10 64位ADODB连接失败

无法通过 Windows 2012 上的系统 dsn 使用 ODBC 连接连接到 SQL Server 2008