Foxtable(狐表)用户栏目专家坐堂 → 自动编号重复,老师看看怎么回事吧


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

主题:自动编号重复,老师看看怎么回事吧

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
自动编号重复,老师看看怎么回事吧  发帖心情 Post By:2018/5/24 14:35:00 [显示全部帖子]

SQLserver数据源。
即使是一个人录入:偶尔也会出现,自动生成的编号有重复的现象。
Dim cr As Row = Tables("发文登记表").Current
    Dim y As Integer = rq.Year
    Dim m As Integer = rq.Month
    Dim Days As Integer = Date.DaysInMonth(y,m)
    Dim fd As Date = New Date(y,m,1) '获得该月的第一天
    Dim ld As Date = New Date(y,m,Days) '获得该月的最后一天
    Dim bh As String = Format(rq,"yyyyMM") '生成编号的前6位,4位年,2位月.
    Dim max As String
    Dim idx As Integer
    max = DataTables("发文登记表").sqlCompute("Max(文件编号)","发文部门='"& user.group &"' and 发文登记日期>= '" & fd & "' And 发文登记日期<= '" & ld & "' And [_Identify] <> " & cr("_Identify")) '取得该月的最大编号
    If max > "" Then '如果存在最大编号
        idx = CInt(max.Substring(13,3)) + 1 '获得最大编号的后三位顺序号,并加1
    Else
        idx = 1 '否则顺序号等于1
    End If
    cr("文件编号") =dr("部门缩写") & "-FW-" & bh & "-" & Format(idx,"000")
        Tables("发文登记表").save

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/5/24 15:32:00 [显示全部帖子]

如果将 编号列的,禁止重复属性,设置为true,是否会避免 多人录入 自动编号 的重复现象? 如此操作会不会造成,重复的话,某些编号为空?
手动编号在列的 datacolchanging事件中容易控制重复;但是若是自动编号不好控制吧?
有一点不太理解,已经使用SQLcompute来判断数据了,为什么编号还会重复呢
[此贴子已经被作者于2018/5/24 15:34:13编辑过]

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/5/24 18:24:00 [显示全部帖子]

如果在保存表时,多执行几遍,sqlcompute和表保存,统计等于生成的编号。如果统计数据>1,则重新编号。  是否会一定程度上解决多人同时操作时编号重复?        老师推荐这个防止重复的链接,应该只能解决  一个人录入的重复,而无法解决多人同时录入重复吧?http://www.foxtable.com/webhelp/scr/2481.htm
[此贴子已经被作者于2018/5/24 20:12:15编辑过]

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/5/25 11:35:00 [显示全部帖子]

已经将52177和25000/30000的入站规则和安全组加入。
根据老师的说法测试openqq功能,增加行后录入信息,“提示clientqq未启动,无法自动编号”。可能是什么原因啊?
1、已单独建立client的客户端项目,并发布后在服务器上运行。
2、除了以下代码,无其他代码 了。
3、在client项目的afteropenproject事件加入:
QQServer.ServerIp = "0.0.0.0" '指定IP地址
QQServer.ServerPort = 52177 '指定登录端口
QQServer.HeartbeatInterval = 30 '指定心跳时间
QQServer.HeartbeatTimeout = 100 '指定心跳超时时间
QQServer.PortRange = "25000/30000" '指定随机端口范围
QQServer.Start() '启动QQServer
4、其余都是粘贴帮助用OpenQQ实现网络环境下的编号第一例子的代码


[此贴子已经被作者于2018/5/25 11:36:45编辑过]

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/5/25 14:21:00 [显示全部帖子]

设置完客户端和服务器openqq的代码后,客户端登录时出现:已添加了具有相同键的项。是什么原因啊?
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.3.1
错误所在事件:启动IMClient
详细错误信息:
已添加了具有相同键的项。

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2018/5/25 16:49:00 [显示全部帖子]

网络环境下的自动编号第二个例子:
1、客户端项目的对应的表,在其DataColChanged事件中加上代码,下边的代码是啥意思啊:
   Dim rt As String =  QQClient.SendWait(":p" & bh & "p:")     
    Dim id As Integer
    If rt > "" Then
    If  Integer.TryParse(rt,id)  Then
……

2、在服务端的OpenQQ服务端事件ReceivedMessage中编写代码:  下面的代码是什么意思啊(e.Message是什么格式的数据啊)?

Dim msg As String = e.Message    
If
 msg.StartsWith(":g"AndAlso msg.EndsWith("g:"Then    


If msg.StartsWith(":f"AndAlso msg.EndsWith("f:"Then 

If msg.StartsWith(":p"AndAlso msg.EndsWith("p:"Then

[此贴子已经被作者于2018/5/25 16:55:27编辑过]

 回到顶部