关于使用sql server数据库解决局域网内共享加锁的有关问题
发布时间:2010-05-24 22:03:47 文章来源:www.iduyao.cn 采编人员:星星草
关于使用sql server数据库解决局域网内共享加锁的问题?
以前做了一套F/S的以dbf表的局域网的程序,现在,由于数据量增大,准备升级为sql server数据库,客户端差不多有20多个,程序经常会涉及到很多用户同时去防问同一个表,同一个字段。
如:表【Name】中的【number】字段。
会有很多用户在同一时间,在number字段上+1,以前的方法是:
use name shar
do whil .t. && 循环判断能否加锁
if flock()
repl number with number+1
unlock && 解锁
exit
endi
endd
* ------------------------------------------------------
请问有做过的高手,我要是用sql server中的update。
1、update是不是默认就加锁了,就能实现我的要求。
2、是给记录加锁还是给表加锁,如果update不能加锁,怎么加锁?。
望做过的高手给于指点,谢谢!
------解决方案--------------------
在 MSSQL 中有个"事务"的概念,对表操作的语句放在事务中执行,执行过程中,其他用户访问不到同一表的同一条记录,要等前一事务结束后,才允许访问,因此,你的更新语句只要这样做就行了:
update tb set number=number+1 where id=123
这是一条标准的SQL语句,直接这样执行就好了.
如果你要更新多条语句,则:
update tb set number=number+1 where id bewteen 123 and 234
可能楼主要问,"事务"呢?
MSSQL里有规定的,即使你不加事务(显式事务),MSSQL会自动为每一条语句加一个隐式事务,不需要你去考虑锁的问题.
如果一定要加,则:
begin transaction
update....
commit
------解决方案--------------------
SQL SERVER会自动加锁,以防止两个同用户时UPDATE一条记录。
------解决方案--------------------
update tb set number=number+1 where id=123
确实这样的语句直接用不会有问题的
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
菜鸟求一句命令
我做VC的,没做过VFP,完全不懂,帮人问一句命令,谢谢各位大牛们帮忙。
“我有两张表,称为A表,B表,其中B表数据很多,我现在...
-
求助:实现grid修改后直接后直接更新到数据表里
各位道友,小弟有两个问题
1。如何实现在grid表格里直接修改数据;
2。修改的数据可直...
-
请问treeview 里面如何选择性展开其中某树枝及其获得焦点?
请问如何在treeview里面,如何实现选择性展开其中的某枝,原本是全部收起来...
-
vfp中treeview控件的用法
我在VFP中使用了treeview控件,我对treeview中的某一个节点的文本修改了,怎么在treeview窗口中进行就更。
...
-
求编排考号问题
需求是这样的,如1年级有8个班,那么考号编排规则是:第1个班的第一个学生考号为1号,第2个班的第一个学生考号为2号,以此...
-
大家讨论,对现有vfp6.0产品只升级为sql server数据库有必要吗?
功能保留原来 只是数据库变化
我本人觉得会丧失很多vfp 本身文...
-
表单中的出错,第一次遇到
VFP9.0中新建了一个表单
表单中,增加一个command1,使其width=25
然后,将此按钮,复制150个出来. (此时...
-
VFP 如何做一个类似word控件?
如题。
类似于电子病历的那种控件。可以像word一样的编辑文件、表格、图片等
可以直接取数据库的数...
-
vfp使用Msxml2.ServerXMLHTTP的乱码问题
oo = = newObject('Msxml2.ServerXMLHTTP')
oo.open('post','http://localhost/',.f.)
o...
-
表中定位 如下 记录 seek办不到
表结构
dlh fb
100 5
110 2
112 3
........
假如 我想查找 dl...