Foxtable(狐表)用户栏目专家坐堂 → 动态卸载表后数据记录丢失问题已经解决,感谢各位关注,也请多多留意注意事项!


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

主题:动态卸载表后数据记录丢失问题已经解决,感谢各位关注,也请多多留意注意事项!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
动态卸载表后数据记录丢失问题已经解决,感谢各位关注,也请多多留意注意事项!  发帖心情 Post By:2013/10/13 1:51:00 [显示全部帖子]

1、新增行执行了load包括这样写:dr.load(true),动态卸载表再重新加载进来,新增的行没有了,所有的数据记录恢复到原始状态

2、先打开要卸载的表(该表显示了表标题),然后执行卸载表命令,电脑死机,杀进程(这个问题中途有没有了,明天再测试)。

 

或许dr.load(true)只是把数据保存在了datatable中,直接卸载表时没有将保存的datarow同步到后台数据库中,按理,dr.load(true)应该及时同步数据到后台数据库。

 

望各位测试一下试试,今天的最新版,请方技术人员核实处理。

[此贴子已经被作者于2013-10-14 19:23:32编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 2:21:00 [显示全部帖子]

查到原因,dr.load(true)没起作用:

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目16.foxdb


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 11:38:00 [显示全部帖子]

现在的问题是dr.load(true)失去了意义,以前是可以的,dr.load(true)必须同步到后台去,datatable中获得的数据和其他用户获得的数据才是最新的,数据记录多了,不可能频繁地DataTables("表A").Save(),必须要有及时同步行的效果!
[此贴子已经被作者于2013-10-13 11:38:48编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 12:17:00 [显示全部帖子]

1、帮助中load(true)说明是同时保存数据的;

2、在我的系统中,昨晚就已经连续测试dr.save()依然无效,看我的QQ留言,说的比较详尽。


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 12:25:00 [显示全部帖子]

新増行load(true)不自动保存,网络应用存在问题,不能将自己的新数据提交给对方,望改。

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 13:19:00 [显示全部帖子]

保存还要load,是不是多此一举?只保存修改后的记录和新増的行,至少要逐条记录判断吧?肯定不如dr.load()来得快!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 13:22:00 [显示全部帖子]

敢肯定,在2012年7月以前的版本,dr.load()是可以保存的!

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 20:45:00 [显示全部帖子]

我的意思是dr.load()的时候,如果是新行,则自动保存,因为dr.load(true)也是可以保存数据,只是不针对新行,怎样,就避免了必须laod之前必须使用save了,既然如此,那就是我钻牛角尖了,我在好好思量解决办法。

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 21:16:00 [显示全部帖子]

dr.load()

换成

dr.save

dr.load()

并用,应该无问题了吧?

代码最后一行加了datatables("sys_角色管理").save

 

很不幸地告诉大家,卸载表再加载后还是部分数据丢了,既然大家没问题,就我一个人有问题,即日起,我暂停我的项目,坐等大家,有别人提出类似问题再说,我不再强调了:

 

我的保存角色按钮代码提供给大家来解读,请各位指出错误:

 

If e.Form.Controls("角色选择").Value = Nothing
    MessageBox.show("对不起,请先输入您要保存角色的名称!","提示", MessageBoxButtons.ok, MessageBoxIcon.Information)
    Return
End If
Dim trv As  WinForm.TreeView = e.Form.Controls("TreeView授权项目")
Dim nd,nd1,nd2 As WinForm.TreeNode
Dim dr As DataRow
Dim s,s1 As String
Dim drs As List(Of DataRow)
drs = DataTables("sys_角色管理").Select("角色建立人 <> '" & Vars("当前用户") & "' and 角色名称 ='" & e.Form.Controls("角色选择").Value & "'")
If drs.Count > 0
    MessageBox.show("对不起,该角色已经存在,但不为您所建,您不能覆盖保存!","提示", MessageBoxButtons.ok, MessageBoxIcon.Information)
    Return
End If
drs = DataTables("sys_角色管理").Select("角色建立人 = '" & Vars("当前用户") & "' and 角色名称 ='" & e.Form.Controls("角色选择").Value & "'")
If drs.Count > 0
    If MessageBox.show("对不起,该角色已经存在,您确定要覆盖保存吗?","提示", MessageBoxButtons.yesno, MessageBoxIcon.Information) = 6
    Else
        Return
    End If
End If
DataTables("sys_角色管理").DeleteFor("角色建立人 = '" & Vars("当前用户") & "' and 角色名称 ='" & e.Form.Controls("角色选择").Value & "'")
s1 = "可视授权,编辑授权"
For i As Integer = 0 To 1
    nd = trv.Nodes("表授权").Nodes(s1.split(",")(i))
    For Each nd1 In nd.AllNodes
        If nd1.nodes.Count > 1
            If nd1.Checked = True
                For Each nd2 In nd1.AllNodes
                    If nd2.Checked = True
                        If s = Nothing
                            s = nd2.name
                        Else
                            s = s & "," & nd2.name
                        End If
                    End If
                Next
                dr = DataTables("sys_角色管理").AddNew()
                dr("角色建立人") = Vars("当前用户")
                dr("角色名称") = e.Form.Controls("角色选择").Value
                dr("授权类别") = "表授权"
                dr("表名称") = nd1.name
                dr("列名称") = s
                dr(s1.split(",")(i).Replace("授权","")) = 1
                dr.save()
                dr.load()
                s = Nothing
            End If
        End If
    Next
Next
s1 = "入库管理,出库管理"
For i As Integer = 0 To 1
    nd = trv.Nodes("仓库管理").Nodes(s1.split(",")(i))
    For Each nd1 In nd.AllNodes
        If nd1.nodes.Count > 1
            If nd1.Checked = True
                For Each nd2 In nd1.AllNodes
                    If nd2.Checked = True
                        If s = Nothing
                            s = nd2.name
                        Else
                            s = s & "," & nd2.name
                        End If
                    End If
                Next
                dr = DataTables("sys_角色管理").AddNew()
                dr("角色建立人") = Vars("当前用户")
                dr("角色名称") = e.Form.Controls("角色选择").Value
                dr("授权类别") = s1.split(",")(i).Replace("管理","授权")
                dr("表名称") = nd1.name
                dr("列名称") = s
                dr.save()
                dr.load()
                s = Nothing
            End If
        End If
    Next
Next
nd = trv.Nodes("车辆管理").Nodes("车辆调度")
If nd.Checked = True
    For Each nd1 In nd.AllNodes
        If nd1.Checked = True
            If s = Nothing
                s = nd1.name
            Else
                s = s & "," & nd1.name
            End If
        End If
    Next
    dr = DataTables("sys_角色管理").AddNew()
    dr("角色建立人") = Vars("当前用户")
    dr("角色名称") = e.Form.Controls("角色选择").Value
    dr("授权类别") = "车辆管理"
    dr("表名称") = "车辆调度"
    dr("列名称") = s
    dr.save()
    dr.load()
    s = Nothing
End If
nd = trv.Nodes("人事管理")
If nd.Checked = True
    For Each nd1 In nd.AllNodes
        If nd1.Checked = True
            If s = Nothing
                s = nd1.name
            Else
                s = s & "," & nd1.name
            End If
        End If
    Next
    dr = DataTables("sys_角色管理").AddNew()
    dr("角色建立人") = Vars("当前用户")
    dr("角色名称") = e.Form.Controls("角色选择").Value
    dr("授权类别") = "人事管理"
    dr("表名称") = ""
    dr("列名称") = s
    dr.save()
    dr.load()
    s = Nothing
End If
nd = trv.Nodes("生产管理")
If nd.Checked = True
    For Each nd1 In nd.AllNodes
        If nd1.Checked = True
            If s = Nothing
                s = nd1.name
            Else
                s = s & "," & nd1.name
            End If
        End If
    Next
    dr = DataTables("sys_角色管理").AddNew()
    dr("角色建立人") = Vars("当前用户")
    dr("角色名称") = e.Form.Controls("角色选择").Value
    dr("授权类别") = "生产管理"
    dr("表名称") = ""
    dr("列名称") = s
    dr.save()
    dr.load()
    s = Nothing
End If
nd = trv.Nodes("资料管理")
If nd.Checked = True
    For Each nd1 In nd.AllNodes
        If nd1.Checked = True
            If s = Nothing
                s = nd1.name
            Else
                s = s & "," & nd1.name
            End If
        End If
    Next
    dr = DataTables("sys_角色管理").AddNew()
    dr("角色建立人") = Vars("当前用户")
    dr("角色名称") = e.Form.Controls("角色选择").Value
    dr("授权类别") = "资料管理"
    dr("表名称") = ""
    dr("列名称") = s
    dr.save()
    dr.load()
    s = Nothing
End If
nd = trv.Nodes("报表管理")
Dim bblb As New List(Of String)
If nd.Checked = True
    For Each nd1 In nd.AllNodes
        If nd1.Nodes.Count = 0
            If bblb.Contains(nd1.ParentNode.FullPath) = False
                bblb.Add(nd1.ParentNode.FullPath)
            End If
        End If
    Next
End If
Dim Values() As String
For Each lb As String In bblb '遍历报表类别
    Values = lb.split("\")
    For n As Integer = 0 To Values.Length - 1
        If n = 0
            nd = trv.Nodes(Values(n))
        Else
            nd = nd.Nodes(Values(n))
        End If
    Next
    If nd.Nodes.Count > 0
        dr = DataTables("sys_角色管理").AddNew()
        dr("角色建立人") = Vars("当前用户")
        dr("角色名称") = e.Form.Controls("角色选择").Value
        dr("授权类别") = "报表管理"
        If nd.Nodes(0).text = "报表设置"
            Dim bbsz As String = nd.Nodes(0).FullPath
            dr("表名称") = bbsz.Replace("报表管理\","")
        Else
            For Each nd1 In nd.AllNodes
                If s = Nothing
                    s = nd1.text
                Else
                    s = s & "," & nd1.text
                End If
            Next
            dr("表名称") = lb.Replace("报表管理\","")
            dr("列名称") = s
        End If
        dr.save()
        dr.load()
        s = Nothing
    End If
Next
DataTables("sys_角色管理").save()
MessageBox.show("恭喜您,保存角色成功!","提示", MessageBoxButtons.ok, MessageBoxIcon.Information)


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/10/13 21:17:00 [显示全部帖子]

楼上代码,保存后选择角色,没有问题,卸载表,问题来了,记录丢失。

暂停项目至问题解决后。

[此贴子已经被作者于2013-10-13 21:17:50编辑过]

 回到顶部
总数 28 1 2 3 下一页