Foxtable(狐表)用户栏目专家坐堂 → [求助]如何解决在多用户情况下自动编号重复问题?


  共有3029人关注过本帖树形打印复制链接

主题:[求助]如何解决在多用户情况下自动编号重复问题?

帅哥哟,离线,有人找我吗?
新福星
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
[求助]如何解决在多用户情况下自动编号重复问题?  发帖心情 Post By:2019/8/20 6:47:00 [只看该作者]

多用户。设定了一个子程序获取编号。格式为日期+四位顺序号。

实现方法和帮助中的《自动编号生成方法》基本一样,只是将统计数量作为序号改为了表格记存方式。某个用户取一个加一。

并且设定了占用标识。

在实际使用中发现仍然会出现重号的现象。分析原因就是出现了极端情况,两个用户就是在同一时间进入子程序来获取编号。

这样取得的编号就重复了。

有什么办法解决么?程序如下。谢谢


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20190820065002.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/8/20 6:55:50编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
xxfoxtable
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1769 积分:16693 威望:0 精华:0 注册:2017/6/1 23:12:00
  发帖心情 Post By:2019/8/20 7:30:00 [只看该作者]

常用的功能,官方能做出一个标准模块就好了

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/20 8:43:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2019/8/20 9:27:00 [只看该作者]

程序中所有的SQL语句都是单一单表执行语句,而不是多表多功能的语句.

不知道事务语句加到何处呢?谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/20 9:35:00 [只看该作者]

第一句SQL之前和最后一句SQL之后,而且需要改代码,使用同一个cmd变量

Try
    Connections("数据源").BeginTransaction() 
'开始事务
    Dim cmd As new 
SQLCommand
    cmd.ConnectionName = 
"数据源"
    cmd.CommandText = 
"Delete From {订单} Where [订单编号] = 32"
    cmd.
ExecuteNonQuery
    cmd.CommandText = 
"Delete From {订单明细} Where [订单编号] = 32"
    cmd.
ExecuteNonQuery
    Connections("数据源").Commit 
'提交事务,所有操作生效

Catch
 ex As Exception '如果出错 
    Connections("数据源").Rollback() 
'回滚事务,撤销所有操作

End
 Try

 回到顶部
帅哥哟,离线,有人找我吗?
新福星
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1964 积分:15604 威望:0 精华:0 注册:2011/7/16 20:59:00
  发帖心情 Post By:2019/8/20 9:40:00 [只看该作者]

理解这个语句是保证订单和订单明细主从记录必须同时删除.要么就都不删除.

这个机到运用到保证取的编号唯一性的原理是什么呢?

可以理解为运用了事物机制后,是不是第二个进入者就无法修改数据了?自动排队了?谢谢


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/20 10:01:00 [只看该作者]

是的,因为有update,在事务没有结束之前,其他人就无法update同一行了

 回到顶部
帅哥哟,离线,有人找我吗?
xuanxiao
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:640 积分:5407 威望:0 精华:0 注册:2014/8/27 11:12:00
  发帖心情 Post By:2019/8/20 11:12:00 [只看该作者]

用户已经被屏蔽

 回到顶部
帅哥哟,离线,有人找我吗?
playmal
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1581 积分:13064 威望:0 精华:0 注册:2009/6/16 7:30:00
  发帖心情 Post By:2020/8/24 11:41:00 [只看该作者]

没看明白,有没有例子代码

 回到顶部