SQL Server 2008 链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。

SQL Server 2008 链接服务器错误:Microsoft.Jet.OLEDB.4.0 访问接口问题
在SQL Server 2008中尝试使用`opendatasource`执行插入操作时,遇到链接服务器"(null)"的OLE DB提供者"Microsoft.Jet.OLEDB.4.0"返回"未指定的错误"。可能原因包括SQL启动账号对TMP和TEMP目录,以及Access文件所在目录缺乏权限。解决方案包括禁用"Allow Inprocess"选项,重启服务器,以及创建新Access文件进行测试。这样可以防止Access错误影响SQL Server执行。

insert into opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source=c:/Customers.mdb;Jet OLEDB:Database Password=123456;User ID=Admin;Password=;')...Emploee
(PNo, PName) select 人員代號, 姓名,部門代號

 

在SQL2008執行出錯

無法初始化連結伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 的資料來源物件。
連結伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 傳回訊息 "無法指出的錯誤"。

 

簡體:

无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象

链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。
大概歸類為以下兩種原因:

1.    SQL 啟動帳號對TMPTEMP資料夾沒有權限.

2.    SQL啟動帳號對Access檔案所在資料夾沒有權限.

但我們已經試過以上的設定.

我想可以再試一下以下的步驟:

1.    SQL Server, 展開[Server Objects]/[Linked Server], 找到Microsoft.Jet.OLEDB.4.0 driver, 在上面按右鍵, 選擇Property.

2.    不要勾選[Allow Inprocess], 測試是否能成功.

3.    安排時間重新開機, 再測試是否能成功.

4.    建另一個新的Access檔案, 看看是不是可以成功. 您可以只用

Select * from opendatasource(…) 來測試就可以.

 

 

 

 

這個控制項如果啟用, 就會把Accessprocess包在SQL process裡一起跑. 不啟用就是讓他分開跑.這樣access端有錯誤就不會丟回SQL Server. 我想您access端雖然有問題但是不影響執行, 因此只要讓它不丟回SQL Server就好了.

關於兩者效能的差別, 官方的部落格有提到如果不選allow in process可能效能會差一些.

這個選項主要是給一些third partyprovider, 例如 Oracle, 在做linked server的時候不能跟SQL Server分開跑, 因此必須設定這個選項.  在正常情況下, 勾或不勾都是可以執行的.

參考以下資料:

 

Msg 7399 – OLE DB provider “MSDASQL” - The provider reported an unexpected catastrophic failure

http://blogs.msdn.com/john_daskalakis/archive/2009/11/13/9921916.aspx

 

如何在 SQL Server 中設定並疑難排解 Oracle 資料庫的連結伺服器

http://support.microsoft.com/kb/280106

 

Linked Server Properties (Provider Options Page)

http://msdn.microsoft.com/en-us/library/ms188095.aspx

 

之前的問題, 由於windows 2008上自己有Windows Dac, 因此可能因為您在安裝舊版的mdac,或是因為其他原因 driver有問題. 但是因為Windows Dac不能單獨下載, 所以無法還原. 目前的常用的解法就是rebuild 電腦, 或是下載之前提供的Office 2007 System Driver, 然後修改connection string來使用新的provider.

http://www.microsoft.com/downloads/details.aspx?familyid=7554f536-8c28-4598-9b72-ef94e038c891&displaylang=en

 

 

另外SQL 2008建議使用Native Client 10.0來查詢.

您可以在以下連結下載2008 Native Client:

http://go.microsoft.com/fwlink/?LinkId=123717&clcid=0x409

 

完整下載頁面請參考以下連結:

Microsoft SQL Server 2008 Feature Pack, August 2008

http://www.microsoft.com/downloads/details.aspx?FamilyId=C6C3E9EF-BA29-4A43-8D69-A2BED18FE73C&displaylang=en

  

2008 Native client只支援 windows 2003以上的版本, 若您的電腦為Windows 2003以下, 麻煩您使用sql 2005native client. 下載位置:

http://download.microsoft.com/download/4/4/D/44DBDE61-B385-4FC2-A67D-48053B8F9FAD/sqlncli.msi

 

完整下載網址:

Feature Pack for Microsoft SQL Server 2005 - November 2005

http://www.microsoft.com/downloads/details.aspx?FamilyID=d09c1d60-a13c-4479-9b91-9e8b9d835cdc&displaylang=en 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值