0

我有一个简单的多线程 .NET 应用程序,它使用 ACE 将行插入 MS Access 2010 DB。它只做INSERT操作。因为 MS Access 对插入进行页面级锁定,所以我有时会被锁定。

有没有办法改变这种锁定类型?或者是否有一种“危险模式”,我可以告诉它完全忽略锁,如果它找到锁定的页面,则可能会创建新页面?

编辑:这里根本没有办法控制锁定吗?到目前为止,我所拥有的技巧是为这些事务维护一个单一的共享连接,然后连接对象只是将插入排队。这可行,但我不喜欢这种连接只是漂浮。

4

1 回答 1

0

您使用什么接口来更新数据库?OLEDB?如果是这样,这篇文章似乎回答了这个问题:

PRB:Jet 4.0 行级锁定不适用于 DAO 3.60

这似乎是设置连接对象的属性的问题:

将 Connection 对象的动态 Properties("Jet OLEDB:Database Locking Mode") 设置为 1。

对于它的价值,我不认为 Jet/ACE 是非常适合这种事情的数据存储,但这取决于插入的频率。

10个一小时,没问题。

10 一分钟,我会切换到不同的数据库。

顺便说一句,使用单个连接是使用 Jet/ACE 数据存储的首选方法,因为每次重新打开连接时都需要重新创建锁定文件。

于 2011-04-29T03:18:31.810 回答