破解ODBC数据源管理器(64位)添加系统DNS不可见问题!

 

大家在开发过程中是否遇到过使用ODBC来操作Access数据库却运行失败的问题,今天小编按照MSDN文档指导,编写了一个简单的demo来测试一下,帮助大家解决运行过程中的报错问题。

01

添加数据源

这个解决办法据说是要在ODBC数据源管理器的系统DNS中添加一个数据源,下面进行添加,具体步骤如下:
在Windows工具中看见两个数据源,分别是32位与64位:
现在32位的东西都快绝迹了,所以想当然打开64位的,结果悲剧开始了。
打开后添加一个Access的数据源:
如图,什么数据源也没有:
于是再添加一次,结果显示已经存在:
但是,小编在Access中发现了自己创建的这些数据源:

02

添加32位数据源

小编在尝试使用64位数据源管理器无果后,转而选用了32位的数据源管理器,结果竟然成功了:
但在运行时还是在  connection.Open();这行代码上报错了:
继续找原因时小编被一个大哥的代码解救了,他没遇到上面那些问题,只是看见他的demo的连接字符串上多了一个Dns=xxx;。
按照他的做法在连接字符串上加了个Dns=AAA;代码成功运行,为什么MSDN的示例里面没有加这个。
但是刚才ODBC64位管理器添加系统DNS的问题还不清楚失败原因,首先小编怀疑是驱动的问题:既然是64位数据源管理器出问题了就重新下载了64位驱动。
https://www.microsoft.com/zh-cn/download/details.aspx?id=54920
下载后安装,真相大白了:安装了32位数据源就不能再安装64位数据源。

03

经验总结

小编的ODBC的Access驱动是32位的(这是因为之前在安装Office时误点了32位的exe),当小编尝试使用64位程序进行创建时,显然是不对的,但ODBC64位数据源管理器并未给出任何明确的提示或警告,让人非常困惑。
更令人费解的是,尽管创建过程似乎顺利完成了,但新创建的数据源并未显示在列表中,而在Access中却能看到其存在。这种软件行为令人摸不清头脑,让人难以找到问题的真正根源。
小编尝试在浏览器中搜索相关问题,但搜索结果并未给出清晰的解释,有些答案甚至只是碰巧解决了问题,并没有提供真正的解决方案。
其实到这里问题还没有完全解决,小编写这篇文章时想复现的错误也不报错了。
之后,去掉Dns=AAA;后照样能跑通。
通常来说,只要程序能够正常运行就可以,但是有时候就要有点不求甚解的态度,说不定下次就知道了原因,死磕容易伤害灵魂~
而在使用ODBC时,选择正确的驱动版本——到底是64位还是32位——是至关重要的。因为许多数据库都提供了ODBC驱动支持,对于微软而言,这无疑是一个亟待解决的问题。
最后,希望大家都不要遇到这种类似的问题。

原创文章,作者:速盾高防cdn,如若转载,请注明出处:https://www.sudun.com/ask/35792.html

(0)
速盾高防cdn's avatar速盾高防cdn
上一篇 2024年4月26日 下午10:36
下一篇 2024年4月26日 下午10:40

相关推荐

  • 中国最大的cdn公司,中国十大cdn公司

    标题:中国最大的CDN公司:探索速盾CDN如何解决网络加速难题 在网络世界中,速度是至关重要的。无论是网页加载速度还是数据传输速度,都直接影响着用户体验和业务效率。中国最大的CDN…

    2024年5月11日
    0
  • 6种负载均衡算法

    当今的分布式系统越来越普遍,由于它们能够提供更高的灵活性和可扩展性。但是,这些系统需要处理大量的客户端请求。为了处理这些请求并提供对每个客户端的稳定和高效的服务,需要使用负载均衡算…

    CDN资讯 2024年4月6日
    0
  • CDN加速原理(科普)

    背景 如上图,互联网企业的国内业务肯定部署在国内,出海业务则一般部署在海外;具体部署区域,则一般根据用户所在区域,选择就近的区域。 源站部署到不同区域,选择不同的机房,对于各地用户…

    2024年4月4日
    0
  • 如何使用Cloudflare API 之 DNS记录导出

      💥 如何使用Cloudflare API自动导出所有域名的DNS记录 大家好,今天我将和大家分享如何使用Cloudflare API自动导出所有域名的DNS记录。这个…

    2024年7月11日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注