Foxtable(狐表)用户栏目专家坐堂 → 用OpenQQ同步数据问题


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

主题:用OpenQQ同步数据问题

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


加好友 发短信
等级:小狐 帖子:346 积分:3911 威望:0 精华:0 注册:2013/1/7 17:39:00
用OpenQQ同步数据问题  发帖心情 Post By:2023/3/9 16:28:00 [只看该作者]

请教老师:我想通过如下代码实现客户端数据表的同步,但执行时没有实现同步,代码如下:

Open客户端的receivedMessage事件中的代码如下:
Dim msg As String = e.Message
If msg.StartsWith("U#") Then '表示修改了某行
    Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        Dim dr As DataRow = DataTables(pts(1)).Find("[_Identify] = " & pts(2))
        If dr IsNot Nothing  Then
            dr.Load() '重新加载此行
        End If
    End If
ElseIf msg.StartsWith("A#") Then '表示增加了行
    Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        DataTables(pts(1)).AppendLoad("[_Identify] = " &  pts(2)) '追载新增加的行.
    End If
ElseIf msg.StartsWith("D#") Then '表示删除了行
    Dim pts() As String = msg.Split("#")
    If pts.Length = 3 Then
        DataTables(pts(1)).RemoveFor("[_Identify] = "  & pts(2)) '移除行
    End If
End If



客户端项目的全局表事件AfterSaveDataRow中写入如下代码:
Dim p, msg As String
If e.StatementType = 0 Then   '新增行时
    p = "A#"
ElseIf e.StatementType = 1 Then   '修改行时
    P = "U#"
    Else    '删除行时 
    p = "D#"
End If
msg = p & e.DataTable.Name & "#" & e.DataRow("_identify")
For Each bd As qqbuddy In QQClient.Buddies
    If bd.OnLine Then
        QQClient.Send(bd.Name, msg)
    End If
Next

这个表事件不能实现同步吗

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


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

调试

Dim msg As String = e.Message
msgbox(msg) ‘这里能不能弹出,弹出什么内容?
If msg.StartsWith("U#") Then '表示修改了某行
    Dim pts() As String = msg.Split("#")
……

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


加好友 发短信
等级:小狐 帖子:346 积分:3911 威望:0 精华:0 注册:2013/1/7 17:39:00
  发帖心情 Post By:2023/3/10 10:01:00 [只看该作者]

弹不出

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


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

说明用户没有收到消息,应该是没有登录openqq。

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


加好友 发短信
等级:小狐 帖子:346 积分:3911 威望:0 精华:0 注册:2013/1/7 17:39:00
  发帖心情 Post By:2023/3/10 23:56:00 [只看该作者]

测试发现在全局表事件AfterSaveDataRow中写入message.show("aaa")没反应,而在表事件AfterSaveDataRow中写入message.show("aaa")才起作用。一楼我的代码不起作用是不是这个原因呀
[此贴子已经被作者于2023/3/10 23:56:32编辑过]

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


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

全局表事件要开启才能使用:http://www.foxtable.com/webhelp/topics/0671.htm

 回到顶部