关于锁的使用,C/S模式,ADO连接库,为了保持数据的一致性,我在程序中对表和行加共享锁,为什么其它客户端连查询(执行的常用的Select语
我在程序中用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语句都得加上相关得请求锁信息,才能避免上面得问题出现啊?
我新手,问题问得不妥请别见笑,,谢谢了。。