读书人

ADO并行访问、修改数据库有关问题

发布时间: 2012-06-11 17:42:22 作者: rapoo

ADO并行访问、修改数据库问题
最近在做数据库项目,遇到并行修改的问题。数据库sql,数据集adoquery,
属性
cursorLocation:clUseClient
cursorType:ctStatic
LockType:ltBatchOptimistic
如果 A B 都在访问同一条记录,A修改后更新没问题,此时B再更新就会出现“无法为更新定位行......”的错误,这问题应该怎么解决?如果需要自己加锁,有多少种锁,怎么加锁和解锁?还有怎么判定某一条记录有没有上锁呢?

[解决办法]
你首先要避免这种情况的出现,每个人应该有每个人的权限,不要多人同时都可以对同一个记录进行修改
[解决办法]

探讨
引用:

这个跟ado没有关系,是你使用的数据库来管理操作冲突的问题
比如oracle数据库在操作的时候就提供了行锁定或者表锁定的选择,ado本身只是向数据库提交一个操作请求,如果担心这个问题的话可以用存储过程来实现数据的操作

另外你可以试着用ado的事务处理,当出现冲突执行失败的时候让事务回滚,并给个提示,让操作人员重新操作一遍.

我现在也……

[解决办法]
这个问题跟DELPHI和ADO有关系吗?设计上的缺陷,需要在设计上来弥补。

对于脏数据的处理,我想解决办法有很多了,没必要这么“执着”。
[解决办法]
探讨
引用:

避免 脏数据,我知道的都是事前避免的,事后的恐怕是会很麻烦

事前处理,也就是靠 数据库的锁机制 或 应用的互斥机制 来保证的
前者开发者省事,但是可能会误锁一大片
后者开发者操心,机制复杂,但是比较精确,如果能让用户参与,更准确

我想问下,用锁机制是通过事务或者存储过程锁定吗?我试过开始一个事务但未提交,select的锁定模式是行……

读书人网 >.NET

热点推荐