訪問“無法使用……文件已在使用中”
我有一個 Access 97 數據庫,供多台(最多 4-6 台)電腦(執行 Windows 7)上的某些軟體使用。偶爾(可能 1-2 個月)會發生網路上的電腦無法訪問數據庫的情況。
該程序通過 ADO/JET 驅動程序訪問數據庫(程序是用 LavVIEW 編寫的)並報告“無法使用…文件已在使用中”。當發生這種情況時,嘗試在 Access 中打開另一台電腦上的數據庫會給出類似的消息:
發生這種情況時,沒有與 .mdb 關聯的 .ldb 文件。上次發生這種情況時,我重新啟動了執行該軟體的四台電腦,我立即能夠在另一台電腦上使用 Access 打開數據庫。似乎這導致問題消失了,但也有可能是巧合。
根據我的閱讀,如果電腦無法創建/修改 .ldb 文件,網路上可能會發生此問題。.mdb 文件位於所有電腦都具有讀/寫/創建權限的 Novell 網路驅動器上,並且一切正常,直到電腦無法打開該文件。
有沒有人對可能導致這種情況的原因有任何想法?我認為一種可能性是電腦實際上無法寫入 .ldb 文件(該軟體通常沒有打開到數據庫的連接,所以大多數時候沒有 .ldb 文件)。下次發生此問題時,我將不得不通過嘗試將文件寫入該目錄來進行檢查。似乎很有可能是其他東西掛了它,特別是因為重新啟動電腦似乎可以修復它,但我對 Access、ADO 和 JET 不是很熟悉。
根據我的閱讀,如果電腦無法創建/修改 .ldb 文件,網路上可能會發生此問題。.mdb 文件位於所有電腦都具有讀/寫/創建權限的 Novell 網路驅動器上,並且一切正常,直到電腦無法打開該文件。
你的所作所為非常危險。數據庫引擎處理 MVCC。文件 I/O 是不夠的。也就是說,Microsoft Access 有一種方法可以解決這個問題,稱為Shared Access Mode。我不建議使用它,但它應該可以解決錯誤問題。
確保將 Access 設置為在所有使用者的電腦上以共享模式打開。這是預設設置,但您應該檢查以確保 - 如果使用者以獨占模式打開數據庫,它將乾擾數據可用性。在每台電腦上完成以下過程:
- 啟動 Access 並在文件下點擊選項。請注意,如果您使用的是 Access 2007,請點擊 Microsoft Office 按鈕,然後點擊 Access 選項。
- 在訪問選項框中,點擊客戶端設置。請注意,如果您使用的是 Access 2007,請點擊“高級”。
- 在“高級”部分的“預設打開模式”下,選擇“共享”,點擊“確定”,然後退出 Access。
附帶說明一下,將人們從 Microsoft Access、Visual Basic 和 Perl 遷移出來是我的生計。任何體面的顧問在閱讀有關提供價值的含義時都會垂涎三尺。如果沒有廣泛的備份解決方案,則不應使用**共享訪問模式。**事情會出錯,當他們確實期望市中心時。我有幾個客戶,我們每 15 分鐘將他們的資料同步到 AWS。
請注意,我看到您使用的是 Access 97。我不確定他們何時引入了共享訪問模式,但如果該選項不存在,您將需要升級。我真的不想解決這個問題,如果您向他們或他們提供建議,這不符合您的最佳利益。