2010年5月10日 星期一

Excel openrowset 奇怪的問題(續)

人客家的SSIS,一段時間後都會出現以下的錯誤.
剛開始一頭霧水,以為是上傳的EXCEL檔有問題,
後來發現,原本在SSMS使用正常的excel openrowset, 在同時間也無法使用.

檢查了EXCEL檔案內容,檢查了openrowset的語法, 都沒更動過也沒寫錯...怪哉.


所有的錯誤都出現在Data Flow Component 的OLEDB Source, 里頭放的是一段excel openrowset的語法:

SSIS 錯誤碼 DTS_E_OLEDBERROR。發生 OLE DB 錯誤。錯誤碼: 0x80040E14。
有 OLE DB 記錄可用。來源: "Microsoft SQL Native Client" Hresult: 0x80040E14 描述: "無法初始化連結伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 的資料來源物件。"。
有 OLE DB 記錄可用。來源: "Microsoft SQL Native Client" Hresult: 0x80040E14 描述: "連結伺服器 "(null)" 的 OLE DB 提供者 "Microsoft.Jet.OLEDB.4.0" 報告了錯誤。提供者並未給予任何關於錯誤的資訊。"。

"元件 "Excel OpenRowset" (1230)" 驗證失敗,傳回驗證狀態 "VS_ISBROKEN"。

一或多個元件驗證失敗
工作驗證期間發生錯誤。

載入封裝檔案 "D:\SSIS\subImport.dtsx" 時發生錯誤 0xC0012050。ExecutePackage 工作發生封裝驗證失敗。無法執行封裝。


最後,什麼都沒做,重新啟動SQL Server Services, 又回復正常.

這次,我依照之前遇到的怪問題的解法方法,
在機碼
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\Providers\Microsoft.Jet.OLEDB.4.0 下新增一個名稱
DisallowAdHocAccess = 0

重新啟動SQL Server ,再觀察一段時間看看吧

沒有留言:

張貼留言

publish error allowDefinition='MachineToApplication'

一個老舊的aspx web form專案,調了一些功能建置成功,但進行部署時顯示以下錯誤。 在應用程式層級之外使用註冊為 allowDefinition='MachineToApplication' 的區段發生錯誤。錯誤的原因可能是虛擬目錄尚未在 IIS 中設定為...