关于锁定记录集的问题,求高手帮助,谢谢

crazymanonly 2004-08-25 12:42:53
我的sql server 2000的数据库里面有一张表,名字叫做max_no,意思是最大号表,里面只有一个字段,是整形的,里面只有一条记录,用来存放当前的最大号,比如说当前最大是100,那这个字段的内容就是100,当前最大是200,那这个字段的内容就是200。

现在有两个客户端,每个客户端都运行同一段ADO开发的程序

这段程序的流程是从max_no里面取出当前最大号,加一之后回存到另外一张表loc_no里面,比如说当前取出来是100,那么运行完这段代码之后,就应该往loc_no里面回存101

因为是多客户同时运行程序,所以产生了并发操作的问题,两客户端同时运行这段代码,恰好都取出来是100,然后加一之后同时回存到loc_no,产生了两个101

这不是我想要的结果,我的loc_no里面的数据应该是不重复的

我知道可以给loc_no加主键来解决这种问题,但是我想知道怎么样解决这种并发问题

给记录集加琐吗,具体怎么做的,求高手指教

下面附上我的代码 求达人看怎么修改



Dim rst1 as adodb.recordset
rst1.ActiveConnection = conn
rst1.LockType = adLockOptimistic
rst1.CursorType = adOpenStatic
rst1.Open "select * from max_no"
然后取出当前最大号,然后加一放到J里面


Dim rst2 as adodb.recordset
rst2.ActiveConnection = conn
rst2.LockType = adLockOptimistic
rst2.CursorType = adOpenStatic
rst2.Open "select * from loc_no"
rst2.addnew
rst2!loc_no=J
rst2.update

谢谢了
一拜谢
二拜谢
三拜谢





...全文
62 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
junki 2004-10-18
http://dev.csdn.net/develop/article/24/24978.shtm
回复
相关推荐
发帖

1188

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2004-08-25 12:42
社区公告
暂无公告