Locking

Jet OLEDB 驅動程序拒絕打開原始具有鎖的連結表 - 有什麼方法可以強制執行此操作?

  • March 2, 2012

我需要從多個訪問數據庫中讀取 ETL 作業的參考數據。數據所有者已經生成了一個包含一系列連結表的文件,這些連結表將它們全部整合到一個地方。但是,如果使用鎖定 (.ldb) 文件打開其中一個基本文件,則 OLEDB 提供程序將拒絕打開連結表。

SSIS 包設置有幾個從 OLEDB 源讀取的數據流任務。澄清一下,這些是參考表,不一定在當時更新 - .mdb 文件有一個鎖 (.ldb) 文件。

是否可以配置 MS jet OLEDB 驅動程序強制打開連結表,忽略鎖?

我們研究過的幾個替代方案是:

  • 以相反的方式配置連結表 - 將源放在中央數據庫中並從其他訪問 DBS 連結到它們。企業不願意這樣做,我們也沒有影響力去強迫它。
  • 將基本數據庫複製到暫存區並打開副本 - 這是我們的計劃 B,儘管它涉及通過慢速 WAN 連結移動大約 2GB 並在 ETL 作業開始時增加延遲(幾乎所有內容都依賴於這些參考表)。如果可能的話,我寧願避免延遲。

**編輯:**請參閱我的答案 - 問題是由於缺乏對鎖定文件的寫權限以及驅動程序返回的模棱兩可的錯誤消息。

發現問題 - 變相的權限問題。Jet 驅動程序需要對該目錄具有寫訪問權限,以便它可以更新鎖定文件。當它無法寫入鎖定文件時,它會將玩具扔出嬰兒床,並帶有誤導性的錯誤消息。

引用自:https://dba.stackexchange.com/questions/14204