昨天特别郁闷,打开SQL Server 企业管理器,在表上右击返回所有行的操作出现“未找到提供的程序,该程序未正确安装” 的对话框,点确定后没有返回任何数据。
于是去网上搜索,发现很多人碰到了这个问题,但是却没有比较有效的解决办法。有建议重装sql server的,有重装系统的。在经历了几个小时的baidu,google后,没有找到比较有效的办法!
于是卸载sql server,为了卸载干净,按照网上的方法,删除了所有相关目录和注册表键。重装sql server,心里祈祷着能工作正常。装完后,害怕不行,索性把系统也重起一下。
重新进入Sql Server企业管理,重新点返回所有行,
,简直崩溃,还是不行!!!!!!!
运行sfc /scannow,把系统盘放入,运行完后,问题依旧!
重新下载mdac2.8,安装,装完后,问题依旧!
重新下载mdac2.7,安装,装完后,问题依旧!
因为前几天还使用正常,于是把这2天安装的补丁,软件卸载掉,问题依旧!
崩溃了!崩溃了!崩溃了!崩溃了!崩溃了!崩溃了!
难道非得重装系统??????
今天上班想,如果再找不到方法,只能重装系统了,可怜我系统上的成百上千的应用软件,开发环境。。。。。
突然,想到网上有些人建议重新注册C:/Program Files/Common Files/System/Ole DB/msdasql.dll
于是找这个文件看了下,发现很有可能确实是这个文件的问题。
于是:
regsvr32 "C:/Program Files/Common Files/System/Ole DB/msdasql.dll"
结果出现:
LoadLibrary("C:/Program Files/Common Files/System/Ole DB/msdasql.dll") Failed-无法加载模块 之类的提示
。晕!!!
去这个目录下找,发现这个dll是在的。
于是又经过无数次尝试,这里整,那里搞,还是不行!以为这个文件有问题,先把它删了,一删,马上又自动生成了,原先还以为是不是病毒哦,后来看了下系统日志,才想起这是系统保护文件,受WFP保护的。
去其它机器上拷贝了同名文件过来覆盖,还是不能解决问题。
在痛苦中痛苦。。。。。。。。。。。。。。。。。。
突然想到,会不会是因为这个dll引用的dll有问题,所以造成那个注册提示?因为LoadLibrary调用dll时,如果这个dll引用了其它dll,那么系统将加载这些dll,其中任何一个出错,都会有那样的错误的。
于是查看msdsql.dll引用了哪些dll。然后一个dll地去系统里搜索,看看是存在该文件。终于在经过一番痛苦的等待后,发现确实有个dll没找到。就是:msdatl3.dll。看来看到希望了,哈哈!
去网上搜索该文件,在Microsoft的网站上找到:
MDAC 2.8 (2.80.1022.3) 的文件列表
| 文件名 | 版本 (x86) | 说明 |
| 12520437.cpx | SQL Server 代码页转换器 | |
| 12520850.cpx | SQL Server 代码页转换器 | |
| adcjavas.inc | ADC/RDS JavaScript 包含文件 | |
| adcvbs.inc | ADC/RDS VBScript 包含文件 | |
| adojavas.inc | ADO JavaScript 包含文件 | |
| adovbs.inc | ADO VBScript 包含文件 | |
| cliconfg.dll | 2000.85.1022.0 | 客户端配置实用程序 |
| cliconfg.exe | 2000.85.1022.0 | 客户端配置实用程序 |
| cliconfg.rll | 2000.85.1022.0 | 客户端配置实用程序 |
| dbmsgnet.dll | 2000.85.1022.0 | 面向 Winsock 的 Net Library |
| dbmsrpcn.dll | 2000.85.1022.0 | RPC Net Library |
| dbnetlib.dll | 2000.85.1022.0 | 面向 Winsock 的 Net DLL |
| dbnmpntw.dll | 2000.85.1022.0 | SQL 客户端的命名管道 Net DLL |
| ds16gt.dll | 3.510.3711.0 | ODBC 16 位驱动程序安装通用转换 |
| ds32gt.dll | 3.525.1022.0 | ODBC 驱动程序安装通用转换 |
| expsrv.dll | 6.0.0.8540 | 表达式服务 |
| handler.reg | 安装默认 RDS 处理程序的注册表项文件 | |
| handsafe.reg | 使 RDS 始终随安全处理程序运行的注册表项文件 | |
| instcat.sql | SQL Server SP 目录更新程序 | |
| msadce.dll | 2.80.1022.0 | OLE DB 游标引擎 |
| msadcer.dll | 2.80.1022.0 | OLE DB 游标引擎资源 |
| msadcf.dll | 2.80.1022.0 | 远程数据服务数据工厂 |
| msadcfr.dll | 2.80.1022.0 | 远程数据服务数据工厂资源 |
| msadco.dll | 2.80.1022.0 | 远程数据服务数据控制 |
| msadcor.dll | 2.80.1022.0 | 远程数据服务数据控制资源 |
| msadcs.dll | 2.80.1022.0 | 远程数据服务 ISAPI 库 |
| msadds.dll | 2.80.1022.0 | OLE DB Data Shape 提供程序 |
| msaddsr.dll | 2.80.1022.0 | OLE DB Data Shape 提供程序资源 |
| msader15.dll | 2.80.1022.0 | ADO 资源 |
| msado15.dll | 2.80.1022.0 | ADO |
| msado20.tlb | 2.80.1022.0 | ADO 2.0 类型库 |
| msado21.tlb | 2.80.1022.0 | ADO 2.1 类型库 |
| msado25.tlb | 2.80.1022.0 | ADO 2.5 类型库 |
| msado26.tlb | 2.80.1022.0 | ADO 2.6 类型库 |
| msado27.tlb | 2.80.1022.0 | ADO 2.7 类型库 |
| msadomd.dll | 2.80.1022.0 | ADO MD |
| msador15.dll | 2.80.1022.0 | ADO |
| msadox.dll | 2.80.1022.0 | ADO 扩展 |
| msadrh15.dll | 2.80.1022.0 | ADO 行集合帮助程序 |
| mscpxl32.dll | 3.525.1022.0 | ODBC 代码页转换器 |
| msdadc.dll | 2.80.1022.0 | OLE DB 数据转换存根 |
| msdaenum.dll | 2.80.1022.0 | OLE DB 根枚举程序存根 |
| msdaer.dll | 2.80.1022.0 | OLE DB 错误集存根 |
| msdamg9x.dll | 2.80.1022.3 | Win98 迁移 DLL |
| msdaora.dll | 2.80.1022.0 | Oracle 的 OLE DB 提供程序 |
| msdaorar.dll | 2.80.1022.0 | Oracle 的 OLE DB 提供程序资源 |
| msdaosp.dll | 2.80.1022.0 | OLE DB 简单提供程序 |
| msdaprsr.dll | 2.80.1022.0 | OLE DB 持久服务资源 |
| msdaprst.dll | 2.80.1022.0 | OLE DB 持久服务 |
| msdaps.dll | 2.80.1022.0 | OLE DB 接口代理/存根 |
| msdarem.dll | 2.80.1022.0 | OLE DB 远程提供程序 |
| msdaremr.dll | 2.80.1022.0 | OLE DB 远程提供程序资源 |
| msdart.dll | 2.80.1022.0 | OLE DB 运行时例程 |
| msdasc.dll | 2.80.1022.0 | OLE DB 服务组件存根 |
| msdasql.dll | 2.80.1022.0 | ODBC 驱动程序的 OLE DB 提供程序 |
| msdasqlr.dll | 2.80.1022.0 | ODBC 驱动程序的 OLE DB 提供程序资源 |
| msdatl3.dll | 2.80.1022.0 | OLE DB 实现支持例程 |
| msdatsrc.tlb | 9.1.1022.0 | 数据访问 - 数据源接口 |
| msdatt.dll | 2.80.1022.0 | OLE DB 临时表服务 |
| msdaurl.dll | 9.2.1022.0 | OLE DB RootBinder 存根 |
| msdfmap.dll | 2.80.1022.0 | 数据工厂处理程序 |
| msjro.dll | 2.80.1022.0 | Jet 和重复对象 |
| msjtes40.dll | 4.0.2927.8 | Jet 表达式服务 |
| msorc32r.dll | 2.575.1022.0 | Oracle 的 ODBC 驱动程序资源库 |
| msorcl32.dll | 2.575.1022.0 | Oracle 的 ODBC 驱动程序 |
| msvcirt.dll | 6.0.8168.0 | (R) C++ 运行时库 |
| msvcrt.dll | 6.0.8397.0 | (R) C 运行时库 |
| mswdat10.dll | 4.0.3829.2 | Jet 排序表 |
| mswstr10.dll | 4.0.3829.2 | Jet 排序库 |
| msxactps.dll | 2.80.1022.0 | OLE DB 事务代理/存根 |
| msxml3.dll | 8.40.9419.0 | MSXML3 SP4 |
| msxml3a.dll | 8.20.8730.1 | MSXML3 资源文件 |
| msxml3r.dll | 8.20.8730.1 | MSXML3 资源文件 |
| mtxdm.dll | 1999.6.902.0 | MTS 连接池 - ODBC 驱动程序管理器 |
| mtxoci.dll | 1999.6.854.0 | MTS - Oracle OCI |
| odbc16gt.dll | 3.510.3711.0 | ODBC 16 位通用转换 |
| odbc32.dll | 3.525.1022.0 | ODBC 驱动程序管理器 |
| odbc32gt.dll | 3.525.1022.0 | ODBC 驱动程序通用转换 |
| odbcad32.exe | 3.525.1022.0 | ODBC 管理器 |
| odbcbcp.dll | 2000.85.1022.0 | SQL Server ODBC 驱动程序 BCP 库 |
| odbcconf.dll | 3.525.1022.0 | ODBC 驱动程序配置程序 |
| odbcconf.exe | 3.525.1022.0 | ODBC 驱动程序配置程序 |
| odbccp32.cpl | 3.525.1022.0 | ODBC 控制面板 |
| odbccp32.dll | 3.525.1022.0 | ODBC 安装程序 |
| odbccr32.dll | 3.525.1022.0 | ODBC 游标库 |
| odbccu32.dll | 3.525.1022.0 | ODBC 游标库 |
| odbcint.dll | 3.525.1022.0 | ODBC 资源 |
| odbctrac.dll | 3.525.1022.0 | ODBC 驱动程序管理器跟踪 |
| oledb32.dll | 2.80.1022.0 | OLE DB 核心服务 |
| oledb32a.dll | 2.80.1022.0 | OLE DB 核心服务 ANSI 资源 |
| oledb32r.dll | 2.80.1022.0 | OLE DB 核心服务资源 |
| oledbjvs.inc | OLE DB JavaScript 包含文件 | |
| oledbvbs.inc | OLE DB VBS 包含文件 | |
| psapi.dll | 4.0.1371.1 | 进程状态帮助程序 |
| sqloledb.dll | 2000.85.1022.0 | SQL Server 的 OLE DB 提供程序 |
| sqloledb.rll | 2000.85.1022.0 | SQL Server 的 OLE DB 提供程序资源库 |
| sqlsrv32.dll | 2000.85.1022.0 | SQL Server ODBC 驱动程序 |
| sqlsrv32.rll | 2000.85.1022.0 | SQL Server ODBC 驱动程序资源库 |
| sqlunirl.dll | 2000.80.728.0 | SQL Server Unicode 资源层库 |
| sqlxmlx.dll | 2000.85.1022.0 | SQL Server 的 XML 扩展 |
| sqlxmlx.rll | 2000.85.1022.0 | SQL Server 的 XML 扩展资源库 |
| vbajet32.dll | 6.0.1.8268 | 表达式服务加载器 |
这个果然是Mdac里的关键文件,于是在Mdac2.8的解压后的临时目录中打开所有cab文件寻找该文件,奇怪的是竟然没找到。我的安装包是从Microsoft下的,应该没错啊!!!不解!!!
于是只好去
http://www.dlldump.com/download-dll-files_new.php/dllfiles/M/msdatl3.dll/2.81.1117.0/download.html
下载了该文件。把它拷贝到C:/winnt/system32目录,再次注册:
regsvr32 "C:/Program Files/Common Files/System/Ole DB/msdasql.dll"
耶!!!搞定!!!!!!
Thanks God!!!!!!
本文解决了SQLServer企业管理器中表上右击返回所有行操作失败的问题,通过查找缺失的msdatl3.dll文件并重新注册msdasql.dll来修复。
1667

被折叠的 条评论
为什么被折叠?



