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


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

主题:关于即时同步的问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/7 14:46:00 [显示全部帖子]

给各个客户端发送【刷新某表】的信息,可以合成字符,如 "刷新|表A"

 

客户端接收到后,拆分数据,如果是【刷新】开头的,就执行代码 DataTables("表A").Load


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/8 9:07:00 [显示全部帖子]

以下是引用ye8573在2018/6/8 7:50:00的发言:
这个刷新|表A,表A能不能是我按保存按钮时的当前表?我现在试了下,固定表名称的话可以成功,所有表都用同一个按钮的话不行。
想要达到的效果是,在当前表按保存,生成信息“刷新|当前表名称”发送,其他客户端收到后自动刷新那张表。请版主大大赐教

 

比如代码

 

Dim str As String = "刷新|" & currentTable.DataTable.name

 

然后发送str过去

 

接收后,拆分str,如

 

Dim ary() = e.message.split("|")

DataTables(ary(1)).Load


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/8 12:40:00 [显示全部帖子]

那你就循环每一行处理,如

 

For Each r As Row In Tables("表A").rows
    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
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/8 19:51:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/6/12 8:47:00 [显示全部帖子]

试试这样修改代码

 

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


 回到顶部