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


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

主题:即时同步数据的问题

美女呀,离线,留言给我吧!
xiaohuli
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
即时同步数据的问题  发帖心情 Post By:2015/10/29 17:47:00 [显示全部帖子]

刚开始学习OpenQQ,用OpenQQ即时高效同步数据,在编辑窗口加一个保存按钮,按钮代码设置为:

Dim r As Row = Tables("A").Current
Dim
p As String = IIF(r.DataRow.RowState = DataRowState.Added, "A#", "U#")
r
.Save()
'
一定要在保存后合成信息,因为新增行的主键在保存后才生成
Dim
msg As String = p & "A" & "#" & r("_Identify")
For
Each bd As QQBuddy In QQClient.Buddies
    If bd.Online Then
        QQClient.Send(bd.name, msg)
   
End If
Next

这个编辑窗口是服务端的程序上的,还是客户端的程序上加的这段代码呀,我是在客户端的编辑窗口的保存按钮上加了这段代码后,在QQClient的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

这些代码都加了,然后我在客户端的编辑窗口中新增一行,保存后,其他客户端上也没有体现呀。

有了OpenQQ,我们可以保存某行数据后,通知其他好友,这一行的数据有变化,请重新加载,这样就能做到即时、高效了。这个到底怎么实现?


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 10:37:00 [显示全部帖子]

在保存按钮上弹出了msgbox,但是在QQClient的ReceivedMessage中没有弹出msgbox,服务端还需要写什么代码不?服务端qq登录了,打开了多个客户端也登录了qq。

[此贴子已经被作者于2015/10/30 10:37:30编辑过]

 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 11:11:00 [显示全部帖子]

客户端,服务端都是在本地测试的,我不明白的是这句话,多用户环境下,任何一个客户端做的修改、增加,删除,保存后都会立即体现在其他客户端上。

这句话的意思是当修改,增加,删除数据后,是自动体现在其他客户端上,还是qq来发送消息,通知其他好友数据已经改变?


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 11:44:00 [显示全部帖子]

问题是,当我新增一行数据保存后,保存按钮和QQClient的ReceivedMessage事件中都弹出了msgbox,但是没有通知给好友呀,没有在其他在线的好友的客户端上体现出来,数据已经修改的问题。

 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 11:54:00 [显示全部帖子]

老师,当弹出了msgbox后,那我应该在哪里写代码呀,能不能写个小例子。


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 12:03:00 [显示全部帖子]

这里面的代码都写了,我就想知道,当数据改变后,是怎么通知给其他好友的,自动通知给好友的功能不能实现,帮助里面的代码都写了。


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 12:08:00 [显示全部帖子]

不能一修改数据后,不用发消息,自动通知给其他好友吗?

 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 12:51:00 [显示全部帖子]

在保存按钮中写了如下代码,Dim r As Row = Tables("A").Current
Dim
p As String = IIF(r.DataRow.RowState = DataRowState.Added, "A#", "U#")
r
.Save()

msgbox(p)
'
一定要在保存后合成信息,因为新增行的主键在保存后才生成
Dim
msg As String = p & "A" & "#" & r("_Identify")
For
Each bd As QQBuddy In QQClient.Buddies
    If bd.Online
Then
        QQClient.Send(bd.name, msg)
   
End If
Next

A#表示新增的,U#表示修改的,当我用了上述代码后,我新增一行后,用msgbox弹出的还是U#,所以当我新增一行后,在其他客户端上不会追加新增的一行,除非刷新后才能看到新增的一行,这是怎么回事,修改和删除的都能做到即时同步数据,就新增的实现不了。这是怎么回事?


 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 16:01:00 [显示全部帖子]

狐爸,我看了帮助后,如图所示,
图片点击可在新窗口打开查看此主题相关图片如下:11.jpg
图片点击可在新窗口打开查看
帮助中说的是,这段代码用于删除行后合成通知信息发送给好友,例如"D#表A#8"表A主键为8的行被删除了。合成消息后,是如何通知给好友的呢?

对表进行的操作的消息能弹出msgbox,数据也都记录在了信息表中,

该写的代码都写了,可一个客户端对表中的数据进行操作完后,并没有通知给好友。

 

[此贴子已经被作者于2015/10/31 14:57:07编辑过]

 回到顶部
美女呀,离线,留言给我吧!
xiaohuli
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:461 积分:3442 威望:0 精华:0 注册:2014/2/8 11:13:00
  发帖心情 Post By:2015/10/30 16:23:00 [显示全部帖子]

狐爸,消息是发送出去了,但是好友没接受到啊,修改数据后的信息只不过是存在了信息表中,好友并没有接受到修改表的信息啊。


 回到顶部
总数 11 1 2 下一页