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


  共有1986人关注过本帖平板打印复制链接

主题:OPENQQ数据同步问题

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


加好友 发短信
等级:小狐 帖子:341 积分:3400 威望:0 精华:0 注册:2013/5/17 10:55:00
OPENQQ数据同步问题  发帖心情 Post By:2016/10/22 1:08:00 [只看该作者]

SQL 数据库,同一数据源两个表:表A,表B.两个表结构不完全一致

 

用户A操作的是表A,

用户A要删除表A中的一条数据,并有关内容写入表B,同时向用户B发出新增数据通知

 

Dim cmd As new SQLCommand

cmd.ConnectionName = "rsgl"

cmd.CommandText = "insert into 表B (姓名,身份证号码) values ('张三','123456789')"

cmd.ExecuteNonQuery

 

Dim dr As DataRow

dr = DataTables(表A).SQLFind("身份证号码 = '123456789'")

If dr IsNot Nothing

    For Each bd As QQBuddy In QQClient.Buddies

        If bd.OnLine Then

            QQClient.send(bd.name,"A#" & "A" & "#" & dr("_identify"))

        End If

    Next

End If

 

用户B操作表B

用户B接收数据

 

Dim msg As String = e.Message

If msg.StartsWith("U#") Then '表示修改了某行,则重新加载

    Dim pts() As String = msg.Split("#")

    If pts.Length = 3 AndAlso vars("basetable") = pts(1) 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 AndAlso vars("basetable") = pts(1) 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 AndAlso vars("basetable") = pts(1) Then

        DataTables(pts(1)).RemoveFor("[_Identify] = "  & pts(2)) '移除行

    End If

ElseIf msg = "!!" Then     '服务器在规定时间要清理数据库,提示用户暂停服务倒计时开始

    JsTime = Date.now.AddMinutes(5)

    Forms("系统暂停服务").open

End If

 

用户B能够正常追载数据,但追载出来的数据行状态显示为修改行.

问:1、如何让表B追载出来的数据行状态为未修改状态?

2、两个结构不完全的数据表之间进行数据转移,上述思路是不是走偏了?

请老师们指点一下,谢谢

 

 

[此贴子已经被作者于2016/10/22 1:09:08编辑过]

 回到顶部