关于锁的使用,C/S模式,ADO连接库,为了保持数据的一致性,我在程序中对表和行加共享锁,为什么其它客户端连查询(执行的常用的Select语

stoneflowers 2006-07-17 08:36:57
我在程序中用DBConnection.Execute("Lock Table Mytab In SHARE MODE NOWAIT") 对表加共享琐,以及用DBCOnnection.Execute("select * from Mytab where ID=1 LOCK FOR UPDATE NOWAIT")对某行加共享锁,以避免其它客户端的用户对数据进行修改。
但为什么其它客户端上的程序,在我锁住的这些表和行的时候,连查询(都是用的普通的Select语句)都没反应?
另外,修改和删除(执行常用的Delte和Update语句)也没反应,不过,我希望当表和行被锁住时候,在执行修改和删除操作时,能不能返回异常什么的,提示当前表或行被加锁了,不能修改了,不然其它客户端总是在那边等待修改和删除的执行而没有提示信息,就不好了。
请问是不是在用到锁的情形下,程序中所有的SQL语句都得加上相关得请求锁信息,才能避免上面得问题出现啊?
我新手,问题问得不妥请别见笑,,谢谢了。。
...全文
263 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stoneflowers 2006-07-19
  • 打赏
  • 举报
回复
up 一下
ciwdba 2006-07-19
  • 打赏
  • 举报
回复
--------------------------------------------------------------
您好,我们是“2006中国杰出数据库工程师评选”活动组委会。
您的帖子已经被我们转载到本次评选官方网站的“专家在线答疑”区。
http://www.bestdba.cn/match_discussion.aspx

在那里,进入本次评选复选的90位数据库工程师将与您展开积极的互动。
一方面,他们会为您的问题提供满意的答案,
另一方面,也邀请您为他们投上宝贵的选票。

2006-7-8 ~ 2006-7-25日,每天我们将从当天参与"有奖投票"的网友
中抽取3名幸运者,赠送由IBM提供的精美礼品一份!

此外,您还可以在“专家在线答疑”区提出新的问题并参与讨论。

您的帖子位于:
http://www.bestdba.cn/match_discussion3.aspx?pointid=287&pointid2=1&pointid3=5&pcount=stc

非常感谢您对本次活动的支持!
--------------------------------------------------------------
vc555 2006-07-17
  • 打赏
  • 举报
回复
普通select不会被锁的呀。
程序中用EXCLUSIVE MODE 或者 FOR UPDATE NOWAIT锁表,然后在修改和删除前先select for update nowait一下,如果这时表是锁住的,就会有提示,否则就可以做修改和删除。
SellAutumn 2006-07-17
  • 打赏
  • 举报
回复
up 一下
SellAutumn 2006-07-17
  • 打赏
  • 举报
回复
上面第2点打错了,更正:"正不琐定"-->"正被琐定"
另外你说的"普通select不会被锁的呀" ,意思是不是指,我以For Update 给行加上共享锁,其它的客户端的程序,可以通过普通的select语句,查找到我这条被琐的行,只是不能修改和删除而已?
可我在做实验的时候,用DBCOnnection.Execute("select * from Mytab where ID=1 LOCK FOR UPDATE NOWAIT")对某行加上共享锁,在另外一台机子上的程序中,查询该条记录,总是没响应,直到我这儿释放锁才可以看的到查询的结果.
怎么回事?是我的语句写错了吗?
SellAutumn 2006-07-17
  • 打赏
  • 举报
回复
vc555() ()
============
有几个基本问题想问清一下:
1,申请锁的操作语句,是不是必需放在BeginTrans和CommitTrans/RollBackTrans之间?是不是从BegingTrans开始到committrans/rollbackTrans释放?
2,如果某表或行,正不琐定,其他客户端程序,可不可以在不加事务的情况下用select for update nowait就可以获取表或行是否被锁的提示吗?

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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