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

crazymanonly crazymanonly 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我的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

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





...全文

相关推荐

visual basic记录集

visual basic 记录集,讲的还算详细

wyapplecitizen

掌握ADO技术:打开和操作记录集

本文详细介绍了如何使用ADO (ActiveX Data Objects) 技术来打开和操作记录集。从基本的打开记录集方法开始,包括使用Connection对象和Command对象的Execute方法,以及Recordset对象的Open方法。文章还阐述了记录集的游标类型、锁定类型以及如何通过Recordset对象的属性来检查记录集是否为空。此外,还提供了几个示例程序,帮助读者理解和应用这些概念。

隔壁王医生

精通ADO技术:高效读取和操作记录集

本章节深入探讨了ADO技术中记录集的操作,包括如何打开和读取记录集,以及如何基于表、查询或SQL语句创建记录集。文中提供了多种打开记录集的方法和示例,如直接使用Connection对象或Command对象的Execute方法,以及Recordset对象的Open方法。同时,还介绍了记录集的游标类型、锁定类型、记录计数等重要属性和方法,以帮助开发者更高效地进行数据操作。

宁南山

记录集对象的参数

ADO数据接口的记录集使用说明

wangliqun123456

ASP 游标参数详解(ASP记录集)第1/2页

rs.open sql,conn,A,B A: ADOPenforwardonly (=0) 只读,且当前数据记录只能向下移动。 ADOPenkeyset (=1) 只读,当前数据记录可自由移动。 ADOpendynamic (=2) 可读写,当前数据记录可自由移动。 ADOpenstatic (=3) 可读写,当前数据记录可自由移动,可看到新增记录。 B: ADLockreadonly (=1) 缺省锁定类型,记录集是只读的,不能修改记录。 ADLockpessimistic (=2) 悲观锁定,当修改记录时,数据提供者将尝试锁定记录以确保成功地编辑记录,只要编辑一开 始,则立即锁住记录。

weixin_38694355
评论 1
收藏 已收藏
分享
返回顶部