MS Access 2010 INSERTS 的锁定类型

Posted

技术标签:

【中文标题】MS Access 2010 INSERTS 的锁定类型【英文标题】:locking types for MS Access 2010 INSERTS 【发布时间】:2011-04-20 15:23:24 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

好像是设置连接对象的一个​​属性:

设置Connection对象的动态 属性(“Jet OLEDB:数据库锁定 模式") 到 1。

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

一小时10个,没问题。

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

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

【讨论】:

我会尝试这个。该项目暂时搁置。真的是debug helper,不是生产代码,所以方法有很多不足。

以上是关于MS Access 2010 INSERTS 的锁定类型的主要内容,如果未能解决你的问题,请参考以下文章

将 accde 文件从 MS Access 2013 保存到 MS Access 2010

使用 c# 和 oledb 查询更新 Ms-Access 2010 中的列值

MS Access 2010 模块案例声明

如何将 java 连接到 Ms Access 2010?

使用表单过滤交叉表查询 MS Access 2010

如何在 MS Access 2010 中将 ACCDB 转换为 MDB