Foxtable(狐表)用户栏目专家坐堂 → [求助]即时同步数据时,同步当前表只显示最后增加的记录(问题已解决)


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

主题:[求助]即时同步数据时,同步当前表只显示最后增加的记录(问题已解决)

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


加好友 发短信
等级:一尾狐 帖子:476 积分:4602 威望:0 精华:0 注册:2013/5/22 15:32:00
[求助]即时同步数据时,同步当前表只显示最后增加的记录(问题已解决)  发帖心情 Post By:2015/11/19 17:36:00 [只看该作者]

在即时同步程序中,删除记录、修改记录、增加记录都可以实现即时同步

 

如果我最后一次操作是增加记录,无论是增加一条记录或多条记录,保存后,在别的客户端能够显示新增加的记录

 

但再点同步当前表或同步所有表,那么该表就会只显示最后增加的一条记录。

 

请老师帮我看看程序。

 

谢谢!

 

OpenQQ客户端RecievedMessage事件代码如下:

 

Dim dr1 As DataRow = DataTables("信息").AddNew
dr1("发送者") = iif(e.UserName > "",e.UserName,"服务器")
dr1("时间") = Date.Now()
dr1("信息") = e.Message

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

 

全局表事件BeforeSaveDataRow 代码如下:

 

If e.DataTable.name <> "信息" Then
    Dim r As DataRow = e.DataRow
    Dim p As String = IIF(r.RowState = DataRowState.Added, "A#", "U#")
   
    Dim msg As String = p & e.DataTable.Name & "#" & r("_Identify")
    For Each bd As QQBuddy In QQClient.Buddies
        If bd.Online Then
            QQClient.Send(bd.name, msg)
        End If
    Next
End If

[此贴子已经被作者于2015/11/30 9:51:36编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/19 18:00:00 [只看该作者]

AppendLoad要谨慎使用。

 

DataTables(pts(1)).AppendLoad("[_Identify] = " &  pts(2)) '追载新增加的行

 

改成

 

Dim temp As String = DataTables(pts(1)).LoadFilter

DataTables(pts(1)).AppendLoad("[_Identify] = " &  pts(2)) '追载新增加的行

DataTables(pts(1)).LoadFilter = temp


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


加好友 发短信
等级:一尾狐 帖子:476 积分:4602 威望:0 精华:0 注册:2013/5/22 15:32:00
  发帖心情 Post By:2015/11/19 18:36:00 [只看该作者]

谢谢大红袍老师

 

问题已经解决

 

那两句话是什么意思,不太明白

 


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/19 19:29:00 [只看该作者]

AppendLoad 会改变 LoadFilter 的值,但后面没改回来,可能是bug

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


加好友 发短信
等级:一尾狐 帖子:476 积分:4602 威望:0 精华:0 注册:2013/5/22 15:32:00
  发帖心情 Post By:2015/11/19 19:58:00 [只看该作者]

哦 谢谢

 


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


加好友 发短信
等级:一尾狐 帖子:476 积分:4602 威望:0 精华:0 注册:2013/5/22 15:32:00
  发帖心情 Post By:2015/11/21 16:47:00 [只看该作者]

老师 你好

 

还是那个程序    刚又碰到另外一个问题

 

我在修改某行之后,光标没有离开最后修改的一个单元格,保存的时候,这个单元格的内容修改情况别人看不到(并不是每回都这样),

 

可能会是什么问题

 

谢谢

 


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


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/11/21 17:15:00 [只看该作者]

保存前把光标移开,不然Datatable认为仍然是编辑状态


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


加好友 发短信
等级:一尾狐 帖子:476 积分:4602 威望:0 精华:0 注册:2013/5/22 15:32:00
  发帖心情 Post By:2015/11/21 17:33:00 [只看该作者]

哦     能不能写几句程序来判断这种情况,保存的时候避免这种情况发生

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/22 14:48:00 [只看该作者]

以下是引用sjx71在2015/11/21 17:33:00的发言:
哦     能不能写几句程序来判断这种情况,保存的时候避免这种情况发生

 

保存的时候,把焦点移开。

 

tables("表A").FinishEditing


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


加好友 发短信
等级:一尾狐 帖子:476 积分:4602 威望:0 精华:0 注册:2013/5/22 15:32:00
  发帖心情 Post By:2015/11/27 2:11:00 [只看该作者]

老师 再帮帮我吧

还是那个程序,假如两个人同时输一个表的数据,增加了多行,但都没有保存,这时可以看到两人输入的记录中 _Identify 很多是重复的

这时候一个人保存,就会弹出运行错误          列“_Identify"被约束是唯一的。值”6968“已存在。

有时点关闭弹窗还可以继续运行,有时就直接死机。 

怎么解决这个问题?

谢谢



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