win7或者WIN10_64位系统调试程序出现[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序的解决办法
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
今天调试一个客户的asp+acc程序的时候,提示 [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序
/login.asp,行 24
问题原因:
64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接。所以,程序里面的链接字符串不能正常工作。需要修改下IIS的工作环境,改成32位的,在IIS的管理界面中,把应用程序池中的默认应用程序池常规选项中的32位方式启用就可以了。
解释如下,以及为什么要选择X86:
win7 64位操作系统有两个ODBC数据源(一个在system32下odbcad32.exe(控制面板-管理工具里的是这个),一个在SysWOW64下odbcad32.exe)
在win764位操作系统中运行程序,默认是在system32里去找驱动,因为64位操作系统要跟过去的32位系统兼容,当运行32位的程序时,系统会到SysWOW64下面去找,所以就解决了ODBC的驱动问题,前提是电脑已经装过驱动了哈;
64位 Win7 下Access的 ODBC连接
直接在 控制面板---管理工具----数据源(ODBC) 打开数据源配置,发现只有SQLServer的驱动,其他的都没有了。
解决方法如下:
C:/Windows/SysWOW64 在这个目录下找到: odbcad32.exe 这个文件,双击打开,具体看以下:
![](https://images.laoliang.net/uploads/2019/05/dfa3e76a20a916b.png)
里面有很多可用个数据源驱动,然后就可用添加连接Access的ODBC的数据源,就是这么简单;
中间可能出现的问题:
Access Connect Fail!
"[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect"
解决方式如下:
之所以回报如下异常,是因为在Qt中setDatabaseName(dns),如果dns字符串不正确的话就会报那种异常。
异常为:
[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序 QODBC3: Unable to connect
dns错误的原因为目前我的电脑为win7 64位,
系统默认的数据源配置驱动为:Microsoft Access Driver (*.mdb, *.accdb)
(注意:空格一定不能少)
而在网上搜到的各种Qt连接access的例子中 驱动为:Microsoft Access Driver (*.mdb)
解决办法:
查看本机数据源中access对应的驱动,在 dns 字符串中将 DRIVER 的值替换相应驱动就行了。
PS:延伸阅读,设置的时候,IIS可能会也让给予32位应用程序池,具体请参考以下文章:
windows7运行asp程序DNS时 Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005’解决方案
以下是出现80004005错误另类的解决方式,以下都仅供参考;
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!
![](https://images.laoliang.net/uploads/2021/07/1626949910-ccd097a7b57abdd.png)
![](https://images.laoliang.net/uploads/2021/07/1626949909-cfbf6f4c8292010.png)