昨天特別鬱悶,開啟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!!!!!!