Foxtable(狐表)用户栏目专家坐堂 → [求助]OPENQQ编号出现重复。


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

主题:[求助]OPENQQ编号出现重复。

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


加好友 发短信
等级:幼狐 帖子:93 积分:1070 威望:0 精华:0 注册:2015/3/8 11:11:00
[求助]OPENQQ编号出现重复。  发帖心情 Post By:2016/7/22 9:41:00 [显示全部帖子]

   根据帮助中的《用OpenQQ实现网络环境下的编号》做的编号,不关闭项目添加正常,但是每次重新打开项目输入"类别",编号就归零。请问是什么原因?全程QQClient斗正常连接。

If e.DataCol.Name = "类别" Then
    If e.DataRow.IsNull("类别") Then
        e.DataRow("编号") = Nothing
    Else
        If QQClient.Ready = False Then
            PopMessage("QQClient未启动,无法生成编号!","提示",PopIconEnum.Infomation,5)
        Else
            Dim bh As String = e.DataRow("类别")
            Dim rt As StringQQClient.SendWait(":f" & bh & "f:")
           
Dim id As Integer
            If rt > "" Then
                If  Integer.TryParse(rt,idThen
                    e.DataRow("
编号") = bh & Format(id,"000")
                Else
                    PopMessage("
服务器返回错误信息:" & rt,"提示",PopIconEnum.Infomation,5)
                End If
            Else
                PopMessage("
服务器无响应,无法生成编号!","提示",PopIconEnum.Infomation,5)
            End If
        End If
    End If

End
If


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


加好友 发短信
等级:幼狐 帖子:93 积分:1070 威望:0 精华:0 注册:2015/3/8 11:11:00
  发帖心情 Post By:2016/7/22 9:52:00 [显示全部帖子]

补充一下,也尝试在生成编号收加入save但是也不行。之前用的还好好的,不知道怎么就变成这样了。图片点击可在新窗口打开查看

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


加好友 发短信
等级:幼狐 帖子:93 积分:1070 威望:0 精华:0 注册:2015/3/8 11:11:00
  发帖心情 Post By:2016/7/22 10:10:00 [显示全部帖子]

谢谢大红袍老师。我试了下添加后保存,服务端开启同一个表格,加载后服务端出现该新建,数据库也有该行,然后关闭客户端再连接编号仍然重头开始。

下面的这段代码不是对比现有编号的吗?而且开了编号列禁止重复,不管用也。

字典储存在内存中重新打开后就会清零吗?


Dim msg As String = e.Message
If
msg.StartsWith(":f") AndAlso msg.EndsWith("f:") Then
    msg = msg.SubString(2, msg.Length - 4)
    If pdbhs.ContainsKey(msg) Then '
如果存在这个类别的编号
        pdbhs(msg) = pdbhs(msg) + 1 '
将该类别最大编号加1
   
Else
        pdbhs.Add(msg,1) '如果是这个列表的首次编号,则编号等于1
   
End If
    e.ReturnValue = pdbhs(msg)
'将编号返回给客户端
End If


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


加好友 发短信
等级:幼狐 帖子:93 积分:1070 威望:0 精华:0 注册:2015/3/8 11:11:00
  发帖心情 Post By:2016/7/22 11:31:00 [显示全部帖子]

大红袍老师,菜单上的保存按键是这个Syscmd.Project.Save()吧?和您提供的有什么不同?保存按键不是直接全表保存了吗?
For Each key As String In pdbhs.Keys
    DataTables("产品").ReplaceFor("编号", key & Format(pdbhs(key),"000"), "类别 = '" & key & "'")
Next
DataTables("产品").Save

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


加好友 发短信
等级:幼狐 帖子:93 积分:1070 威望:0 精华:0 注册:2015/3/8 11:11:00
  发帖心情 Post By:2016/8/4 8:47:00 [显示全部帖子]

以下是引用狐狸爸爸在2016/7/22 11:50:00的发言:

换个思路,每次打开QQserver,就从表中提取最大的编号不就行了吗?

用SQLCompute:

 

http://www.foxtable.com/webhelp/scr/2897.htm

 

= DataTables("订单").SQLCompute("Max(编号)")


狐狸爸爸,能具体讲解下吗?这句代码要加在哪里?

另外,我现在编号使用的是笨方法,每个表的编号都是一个单独全局代码对应,能精简下吗?


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


加好友 发短信
等级:幼狐 帖子:93 积分:1070 威望:0 精华:0 注册:2015/3/8 11:11:00
  发帖心情 Post By:2016/8/4 16:24:00 [显示全部帖子]

谢谢Hyphen和大红袍老师,这样的话就按照<网络环境下的复杂编号>这一节来做了吗?直接抛弃openqq吗?完全和OPENQQ不一样了。

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


加好友 发短信
等级:幼狐 帖子:93 积分:1070 威望:0 精华:0 注册:2015/3/8 11:11:00
  发帖心情 Post By:2016/8/5 8:33:00 [显示全部帖子]

大红袍老师,还需要麻烦您一下。昨晚看了《 网络环境下的复杂编号》以及openqq编号,逐行的看代码还能看明白,但是结合到一块就不会了。又在论坛上搜索了关于编号的问题,http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=83284&skin=0 发现这个帖子中的问题和我一样。
能不能麻烦您做一个小例子或者贴出具体的代码?我相信很多论坛中的朋友都有这个需求的。
基本的需求:1、外部数据源,多用户同时使用。 2、客户端在关闭重启后不出现编号重新计算。 3、单独的编号表,可以多表调用。
非常感谢!


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


加好友 发短信
等级:幼狐 帖子:93 积分:1070 威望:0 精华:0 注册:2015/3/8 11:11:00
  发帖心情 Post By:2016/8/5 12:04:00 [显示全部帖子]

谢谢。但是还是不会啊啊,之前用的都是单机的,复制粘贴代码。腆着脸问能不能贴出代码图片点击可在新窗口打开查看,自己都不好意思了,但是非常需要。图片点击可在新窗口打开查看

 回到顶部