2011-04-20 75 views
0

我有一個簡單的多線程.NET應用程序,它使用ACE將行插入到MS Access 2010數據庫中。 它只對INSERT進行操作。 由於MS Access在插入時執行頁面級鎖定,因此我有時會被鎖定。MS Access 2010的鎖定類型INSERTS

有沒有辦法改變這種鎖定類型? 或者是否有一種「危險模式」,我可以告訴它完全忽略鎖定,並且如果發現鎖定鎖定,可能會創建新頁面?

編輯:在這裏沒有辦法控制鎖定嗎?到目前爲止,我所擁有的破解是通過爲這些事務維護一個單獨的共享連接,然後連接對象將插入隊列排隊。這有效,但我不喜歡這種連接只是浮動。

回答

0

你用什麼接口來更新數據庫? OLEDB?如果是這樣,這篇文章似乎是回答這個問題:

PRB: Jet 4.0 Row-Level Locking Is Not Available with DAO 3.60

這似乎是設置連接對象的屬性的問題:

設置連接對象的動態 屬性(」噴氣OLEDB:數據庫鎖定 模式「),以1

對於它的價值,我不會考慮噴氣/ ACE成爲這起非常適合數據存儲的東西,但它將取決於插入的頻率。

10個小時,沒問題。

10分鐘,我會切換到不同的數據庫。

順便說一句,使用單個連接是使用Jet/ACE數據存儲的首選方法,因爲每次重新打開連接時都會重新創建鎖定文件。

+0

我會嘗試這個。該項目目前暫時擱置。這實際上是一個調試助手,而不是生產代碼,所以這些方法有很多缺點。 – Matthew 2011-05-05 23:25:54