以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于自动复制行的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=88264)

--  作者:蟪蛄
--  发布时间:2016/7/30 10:27:00
--  关于自动复制行的问题
请问一下,假如外部数据库中有一个表T211和表T212,表T211中每增加一行数据或每修改一行数据都会在表T212中保存(也就是表T212是表T211的历史纪录库)
但是现在问题是我的表示在外部数据源中的,而且表T211中的数据是不断自动更新的(不打开foxtable时也在不断更新),我想一打开foxtable就把foxtable没有运行那段时间产生的数据(此时数据在表T211中)复制到表T212中去,
那么我的代码该如何修改?
Dim dr As DataRow = DataTables("T212").AddNew
For Each dc As DataCol In DataTables("T212").DataCols
    
    dr("T212CT") = e.DataRow("T211CT")
    dr("T212UT") = e.DataRow("T211UT")
    dr("T212DL") = e.DataRow("T211DL")
    dr("T212UserId") = e.DataRow("T211UserId")
    dr("T212DeptId") = e.DataRow("T211DeptId")
    dr("T212PointId") = e.DataRow("T211PointId")
    dr("F2423") = e.DataRow("F2415")
    dr("F2424") = e.DataRow("F2416")
    dr("F2425") = e.DataRow("F2417")
    dr("F2426") = e.DataRow("F2418")
    dr("F2427") = e.DataRow("F2419")
    dr("F2428") = e.DataRow("F2420")
    dr("T212Id") = e.DataRow("T211Id")
        
Next

--  作者:狐狸爸爸
--  发布时间:2016/7/30 10:47:00
--  
不打开foxtable就无法监测到变化,没有简单的办法实现。
可以用标记列:
1、每次修改数据,或增加数据,将标记列的内容位置为1,这个你要从后台数据库入手。
2、每次启动foxtable,更新标记列为1的数据到目标表,然后将标记列内容设置为0.

--  作者:蟪蛄
--  发布时间:2016/7/30 11:28:00
--  
好的,谢谢。