選單
GSS 技術部落格
在這個園地裡我們將從技術、專案管理、客戶對談面和大家分享我們多年的經驗,希望大家不管是喜歡或是有意見,都可以回饋給我們,讓我們有機會和大家對話並一起成長!
若有任何問題請來信:gss_crm@gss.com.tw
2 分鐘閱讀時間 (408 個字)

從外部資料庫驅動程式產生的非預期的錯誤 (1) @ OleDbConnection.Open

002

最近因為 Windows Update ,所以造成程式發生以下的錯誤訊息,

從外部資料庫驅動程式產生的非預期的錯誤 (1)。 [ OleDbException.ErrorCode : -2147467259 ]
Unexpected error from external database driver (1). (Microsoft JET Database Engine)

程式只是透過 Provider=Microsoft.Jet.OLEDB.4.0; 去開啟一個 excel 檔而已,如下,

var conn = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Users\\kt\\Documents\\VS Code\\TEST_EXCEL\\aa.xls;Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;\"");
conn.Open();


但這支程式前陣子用的好好的呀! 為什麼今天卻發生了這樣子的錯誤呢?

於是往 Windows 更新來看,發現有2個更新,如下,

windowsUpdate.pngwindowsUpdate.png

查看一下 kb4041681 , 裡面有更動到 Microsoft JET Database Engine 而我們是有用到它呢!!! 於是將它反安裝後重新開機後,再執行程式就沒問題了。

這個更新似乎將 msexcl40.dll 從 V4.00.9801.0 to v4.00.9801.1 , X64 在 C:\Windows\SysWOW64 目錄。

依 “Unexpected error from external database driver (1). (Microsoft JET Database Engine)” after applying October security updates. 的說明,解法有以下3個,

1.安裝更新後,調整程式,方式如下,

2.移除相關的 KB

3.使用舊的 msexcl40.dll (v4.00.9801.1 以前的版本)

  • 先到可以運作的電腦中 Copy msexcel40.dll 存到某個目錄之中,例如 c:\excel32 。
  • 修改註冊機碼 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel\Win32] 從原本的 C:\Windows\SysWOW64\msexcel40.dll 改成 c:\excel32\msexcel40.dll 。002.png002.png

Windows Update 其中的內容如下,

Security updates to Microsoft Windows Search Component, Windows kernel-mode drivers, Microsoft Graphics Component, Internet Explorer, Windows kernel, Windows Wireless Networking, Microsoft JET Database Engine, and the Windows SMB Server.

目前發現有以下幾個 kb 會影響到,

  • kb4041678 Win 7 / Win 2008
  • kb4041681 Win 7 / Win 2008
  • Kb4042007 Win 2008
  • kb4041691 Win 10 / Win 2016
  • kb4041676 Win 10
  • 如果有一樣的錯誤訊息,應該是因為 windows update ,請檢查最近的 windows update 哦!

參考資料

Excel Microsoft.Jet.OLEDB.4.0 外部数据库驱动程序中(1)的意外错误
Kb4042007 Microsoft Jet 资料库引擎遠端執行程式碼弱點的安全性更新:2017 年 10 月 10 日
“Unexpected error from external database driver (1). (Microsoft JET Database Engine)” after applying October security updates.
log4net 檔名使用「大寫字母」造成檔案被「覆寫」問題
已超過連接逾時的設定。在取得集區連接之前超過逾時等待的時間,可能的原因為所有的共用連接已在使用中,並...
 

評論

尚無評論
已經注冊了? 這裡登入
Guest
2024/05/03, 週五

Captcha 圖像