Foxtable(狐表)用户栏目专家坐堂 → [求助]关于联网多人增加行自动编号的代码的优化请教


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

主题:[求助]关于联网多人增加行自动编号的代码的优化请教

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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
[求助]关于联网多人增加行自动编号的代码的优化请教  发帖心情 Post By:2017/11/14 8:55:00 [显示全部帖子]

我设置了个程序,增加行时,编号列自动赋值(在最大号码上+1),保证编号唯一。程序是联网的,可多人同时操作。但是,当多人同时增加行时,因为网络延迟吧,编号列的值会重复,比如,有两个0002的编号,相关代码贴出如下,麻烦大神们予以建议或优化,幼狐感激不尽!

 

一、增加行按钮代码:

If CurrentTable.name = "单位设置" Or CurrentTable.name = "历史库" Then
    messagebox.show("此数据库禁止授权 , 操作取消 !")
Else
    If _usergroup = "编辑" Then
        CurrentTable.DataTable.AddNew()
        CurrentTable.save()
    Else
        messagebox.show("未经授权 , 操作取消 !")
    End If
End If

 

二、表内 DataRowAdding 的代码

Dim max As String
Dim idx As Integer
max = e.DataTable.SqlCompute("Max(编号)","[_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
If max > "" Then '如果存在最大编号
    idx = CInt(max.Substring(0,5)) + 1
Else
    idx = 00001 '否则顺序号等于1
End If
e.DataRow("编号") = Format(idx,"00000")
e.DataRow.Save


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


加好友 发短信
等级:童狐 帖子:204 积分:2037 威望:0 精华:0 注册:2015/3/6 17:12:00
  发帖心情 Post By:2017/11/14 9:27:00 [显示全部帖子]

这是个档案系统,档案编号就是简单的从00001一直增加到99999这种,我把代码写到ed也不行,网络延迟是硬伤。

 回到顶部