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


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

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

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/22 9:45:00 [显示全部帖子]

 

[此贴子已经被作者于2016/7/22 9:46:52编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/7/22 9:57:00 [显示全部帖子]

帮助文档的代码,是要求你服务器程序,不能关闭的。

 

如果要不归零,你必须修改服务器端的代码,也就是关闭项目之前,把编号的信息保存回表里去

 

如,BeforeCloseProject事件,写代码


For Each key As String In pdbhs.Keys
    DataTables("产品").ReplaceFor("编号", key & Format(pdbhs(key),"000"), "类别 = '" & key & "'")
Next
DataTables("产品").Save

 

[此贴子已经被作者于2016/7/22 9:58:26编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/4 9:23:00 [显示全部帖子]

做一个编号表。记录各个编号的最大值。如

 

表A   BH    5

表B   XL    10

 

这样,可以直接启用变量,直接在这个表里面查询存取数据,即可。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/4 18:11:00 [显示全部帖子]

以下是引用苦为用功在2016/8/4 16:24:00的发言:
谢谢Hyphen和大红袍老师,这样的话就按照<网络环境下的复杂编号>这一节来做了吗?直接抛弃openqq吗?完全和OPENQQ不一样了。

 

没有弃用。只是用表来暂时存放数值。你通信不是还是要用openQQ来交互吗?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 9:56:00 [显示全部帖子]

 客户端发送请求获取编号,把表名或前缀发过来。

 

 服务器接收到,就根据表名查询对应的行,编号值加1返回,然后把单元格的值加1。

 

 客户端接收到编号


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 12:10:00 [显示全部帖子]

 客户端发送 QQClient.Send("我要编号|表A")

 

 服务器端

 

Dim msg As String = e.Message

If msg.StartsWith("我要编号") Then
    Dim fdr As DataRow = DataTables("编号表").Find("表名 = '" & msg.split("|")(1) & "'")
    If fdr IsNot Nothing Then
        fdr("编号") += 1
        fdr.save
        e.ReturnValue = fdr("编号")       
    End If
End If


 回到顶部