什么可能导致和ODBC连接报告数据源名称未find

我正在使用基于Access的数据库进行工单pipe理的小企业。 该系统已经存在多年,他们有6-7台使用ISV的定制软件访问数据库。 数据库通过映射驱动器(Z :)连接进行访问。

几个月前,他们开始间歇性地得到这个错误:

数据源名称未find,没有指定默认驱动程序

这导致ISV必须连接到数据库并运行修复以恢复数据库。 他们看到的错误是更具体一点,并build议文件格式已损坏。 支持技术表明,这个问题是由networking上的交易失败造成的。 为此,我们尝试了几件事情

  • 移动数据库到不同的主机,以防原始的“服务器”电脑出现问题
  • 取代了networking交换机
  • 开始逐个将客户从networking上带走,企图孤立问题孩子,结果不一致

到目前为止,没有运气。

我的问题 – 其中一台个人电脑可能会closures它的驱动器映射,并破坏开放的数据库 – Windows 7中是否有新的东西可能会阻碍 – 您能推荐一种更好的方法来隔离原因吗?

这几乎可以肯定是一个32位和64位的DSN问题。 要在64位环境中使用32位DSN,请转到C:\Windows\SysWoW64\odbcad32.exe

我们的内部应用程序有非常类似的限制。 为避免将来出现此问题,您可能需要安装最新的SQL Server Native Client,并通过组策略在每台计算机上部署32位和64位DSN。

如果使用SUBST.exe命令而不是“NET USE”映射驱动器,则与“NET USE”不同,当映射的驱动器丢失时,连接将始终重试。 请记住,这样做会使得对不知道SUBST.exe命令的人员的驱动器进行取消映射变得困难。 当一个驱动器映射这种方式,你不能断开它从窗户爆炸…它不会工作。

就我个人而言,我同意这是64位的问题。

请记住,32位和64位ODBC DSN控制面板,虽然你会期望他们以某种方式工作,在某些情况下,他们却相反。 例如:当在64位系统上并试图添加64位“用户DSN”时,您可能会注意到您的连接失败,但是使用“系统DSN”工作。 这是因为ODBC面板实际上是在64位ODBC控制面板的“用户”选项卡中生成“32位DSN”,而在“系统”选项卡中将生成预期的64位DSN。 只要你意识到控制面板没有达到预期的可能性,我不认为任何configuration都会让你失望。