bestlong 怕失憶論壇's Archiver

bestlong 發表於 2011-3-18 20:36

ADODB.Connection (0x800A0E7A) 找不到提供者。它可能未被正確安裝

環境 XPP SP3(IIS 5.1) + SQL 2008 Express

ASP 的程式碼很單純就是[code]<%
connStr = "Provider=SQLOLEDB.1;Data Source=dbservername\SQLEXPRESS;User Id=dbuser;Password=mypassword;Initial Catalog=mydb;"
set conn = Server.CreateObject("ADODB.Connection")
conn.Open(connStr)
set conn = Nothing
%>[/code]錯誤類型:
ADODB.Connection (0x800A0E7A)
找不到提供者。它可能未被正確安裝。

錯誤訊息中所找不到的提供者是指連接字串內的 [color=Red]Provider=SQLOLEDB.1;[/color] 這個部份.

不過直接採用建立 db.udl 資料連接設定檔來測試 OLE DB 連線卻是可以正常連線.

bestlong 發表於 2011-3-18 21:50

解決方式 [url]http://support.microsoft.com/kb/311766/zh-tw[/url]

當您在 ASP 網頁中存取提供者時

[quote]ADODB.Connection (0x800A0E7A) Provider cannot be found.It may not be properly installed./Nwind.asp, line 10 (找不到 ADODB. 連線 (0x800A0E7A) 提供者。可能並未正確安裝。/Nwind.asp,第 10 行)[/quote]

[quote]因為 Microsoft Data Access Components (MDAC) 需要的動態連結程式庫 (DLL) 並未登錄,所以會發生此錯誤。

1.按一下 [開始],按一下 [執行],然後輸入 cmd。
2.在命令提示字元中,輸入 cd %systemroot%:\Program Files\Common Files\System\Ole。
3.在命令提示字元中,輸入 regsvr32 sqloledb.dll。
4.當您收到已成功登錄 DLL 的確認訊息時,按一下 [確定]。注意:此解決方案使用 Microsoft SQL Server OLE Provider DLL (Sqloledb.dll) 做為範例。因為未登錄的 DLL 可能會根據您使用的 OLE DB 提供者而有所不同,您必須根據情況修改步驟 2。[/quote]

而在 XP 環境是執行下列命令

C:\> CD "\Program Files\Common Files\System\Ole DB"
C:\Program Files\Common Files\System\Ole DB>regsvr32 sqloledb.dll

重新開機後就修復了.
頁: [1]

Powered by Discuz! X1.5 Archiver   © 2001-2010 Comsenz Inc.