在ADO访问Access数据库时,多个用户怎样同时取得一个唯一的编号?

xinlnix 2001-05-22 12:52:00
本人在写程序时遇到这样一个问题:有一个数据表IDNumber,所有用户必须从该表中取得唯一的编号,存在共享冲突问题,用于其提货单中。我在ADO中该怎么办才能实现呢?
...全文
91 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
progame 2001-05-27
临时表并不指临时生成的表,你可以新建一个表。
回复
xinlnix 2001-05-27
我这几天不在网上,很对不起,现在我给分了,但我感觉progame的方法对我不一定好用。还有更好的办法吗?为什么要用临时表呢?我用的可是ACCESS,不是SQL Server!!!!
回复
progame 2001-05-25
fffffffffffffffffffffffffffffffffffffffffffffffffffff
51fffffffffffffffffffffffffffffffffffffffffffffffffff
回复
progame 2001-05-24
怎么还不给分,我口水都流出来了
回复
progame 2001-05-23
哈哈,碰到我啦,我的方法是建立一个临时表,期初将最大的编号加1存入表中,然后当有用户制单时,读取最大号,并新增一个编号,为此编号加1,依此类推,当要保存时,锁住表,读出最小号使用,再删除此最小号,释放表锁定,这样的话绝对不会错的,如果有用户非法死机的话,再重新生成此临时表。我就是这样做的,目前为此运行良好,可惜我的SQL SERVER 的行锁定只能牺牲一下了,变成表锁定,但锁定的时间也不会很长,就保存数据的时候,然后马上释放。
回复
Wonny 2001-05-23
加一个表,用于记录上一编号是什么。这样就不会重复了。
回复
cqq_chen 2001-05-23
最好在有人进入时判断该ID是否在用,如果有用不让进入。
回复
gzzmcc 2001-05-22
可有两种方法:
如果你对ID号要求不高,可用ACESS的自动增量功能,在ACESS表设计中有此一项。
如果你对ID号有格式要求,可以将ID号字段设为主键或唯一值键,这样ID号你就可以自己生成。如果真是不好彩,几个用户在同一时刻增加记录(这种情况很少)数据库也不会接受,当然程序要进行错误处理,提示没有成功保存的用户再进行保存或重新生成ID号再由程序自动保存,总不能连续发生并发事件吧。至少我在一百用户的情况下还很少遇到。最重要是保证数据的一致性。
回复
tom255 2001-05-22
设置为脏读即可,给分。
回复
shuyi 2001-05-22
在此表中再加一个标志字段,当取得id时候把此位置1,别人只有在找到标志位为0时,才能读取,否则movenext。
回复
相关推荐
发帖

1188

社区成员

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