紧急求救:insert 偶尔异常

regersubadm 2012-03-07 09:36:09
我有两个模块操作同一个MDB数据库,每个模块都自己打开MDB(因为是不同开发语言开发的,所以不能共用连接),而且这两个模块操作的还不是同一个表,但是偶尔会出现"无法更新;当前被锁定"的异常,网上找了没有找到解决方案.

这两个模块在同一个进程的同一个子线程中使用.

大家帮帮忙呀!!这个问题困绕了我好几天了.

...全文
91 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
regersubadm 2012-04-07
  • 打赏
  • 举报
回复
操作的两个表之间是没有联系的。

目前的处理方式是将两边的操作都换成SQL的方式后出现该问题的机率大大下降,最后再将所有的事务都去掉就没有出现过该问题了。
ACMAIN_CHM 2012-03-09
  • 打赏
  • 举报
回复
你的代码是什么?
你的说法是操作了不同的表? 这两个不同表之关有没有没什么关系设置?
kobewade5 2012-03-09
  • 打赏
  • 举报
回复
另外就是一个模块添加数据用的是addNew(append)方式,另外一个模块直接用的SQL 添加数据.

直接用SQL语句替换addNew(append)方式
ACMAIN_CHM 2012-03-08
  • 打赏
  • 举报
回复
各有不同的conn, 则是属于不同的连接了。 这样类似于两个用户分别同时操作你的数据库。 如果操作的是同一个表,肯定要有锁表的冲突。
regersubadm 2012-03-08
  • 打赏
  • 举报
回复
都在同一个线程进行的操作,并且在不同的表中. 只不过两个模块因为开发语言不同都有各自的conn.
regersubadm 2012-03-07
  • 打赏
  • 举报
回复
已经这样子改了,就是不清楚有没有效果,因为不是必现.

就是说两边操作方式不一致可能引起问题?
wwwwb 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 regersubadm 的回复:]

另外就是一个模块添加数据用的是addNew(append)方式,另外一个模块直接用的SQL 添加数据.
[/Quote]
直接用SQL语句替换addNew(append)方式
regersubadm 2012-03-07
  • 打赏
  • 举报
回复
另外就是一个模块添加数据用的是addNew(append)方式,另外一个模块直接用的SQL 添加数据.
regersubadm 2012-03-07
  • 打赏
  • 举报
回复
两个模块都未开启事务.
mdb连接串:Provider=Microsoft.Jet.OLEDB.4.0; %s Data Source=%s;Jet OLEDB:Database Password=%s;"
wwwwb 2012-03-07
  • 打赏
  • 举报
回复
怎么连接MDB的,打开事务没有
ACMAIN_CHM 2012-03-07
  • 打赏
  • 举报
回复
你的表如果正在被其中的一个线程更新,则表会被锁定,其它将无法进行更新。
你的具体语句是什么? 是否防止了这种并发?
regersubadm 2012-03-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwb 的回复:]
怎么连接MDB的,打开事务没有
[/Quote]

如果同一线程中操作同一数据库的两个模块,一个开启了事务,另一个没有开启事务,会有什么问题呢?

7,713

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧