昨天特别郁闷,打开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) 的文件列表
<script type="text/javascript">loadTOCNode(2, 'summary');</script>
文件名 | 版本 (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!!!!!!