Foxtable(狐表)用户栏目专家坐堂 → SQL 数据丢失


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

主题:SQL 数据丢失

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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
SQL 数据丢失  发帖心情 Post By:2016/8/1 16:04:00 [只看该作者]

使用狐表录入数据,保存后重新打开程序,产生有部分数据丢失。
没有多人同时编辑这个表格,使用外部SQL数据库。
有些是日期丢失,有些是其他数据丢失,没有出现整行数据丢失的情况。
发生的频率不定期,有时候几天没有,有时候一天出现好几条。

具体情况请见附件,谢谢了。

图片点击可在新窗口打开查看此主题相关图片如下:丢失代码错误2.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:丢失代码错误1.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:eventcode 流失数据错误.zip



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


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

 数据不会无缘无故丢失。只有你修改成对应的单元格,保存了,才会出现丢失的情况。

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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
  发帖心情 Post By:2016/8/1 19:26:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:structure 丢失数据错误.zip


附件是数据结构。

从源代码中可以看到,如果没有输入“加工日期”,是没有办法输入“零件项号”。

但是保存重新打开以后,发现“零件项号”是有的,但是“加工日期”没有了。
对于”加工日期“列,在输入“零件项号“以后无法更改的。

    Case "加工日期"

        If e.DataRow.IsNull("零件项号") = False Then

            MessageBox.Show("请删除零件项号后再更改", "提示")

            e.Cancel = True



    Case "零件项号"

        If e.DataRow.IsNull("生产批号") = False Then

            MessageBox.Show("已经存在生产批号和卡片序号,无法更改项号", "提示")

            e.Cancel = True

        Else If e.NewValue <> Nothing Then

            If e.DataRow.IsNull("加工日期") = True Then

                MessageBox.Show("请先填写日期", "提示")

                e.Cancel = True

            Else

                Dim dr As DataRow

                dr = DataTables("轴类零件数据表").Find("[零件项号] = '" & e.NewValue & "' And [当前在产] = True")

                If dr IsNot Nothing Then

                    Dim tbp As New DropTreeBuilder

                    tbp.SourceTable = DataTables("轴类零件生产汇总表") '指定目录树表

                    tbp.TreeCols = "生产批号" '指定用于生成目录树的列

                    tbp.SourceCols = "生产批号" '指定数据来源列

                    tbp.ReceiveCols = "生产批号" '指定数据接收列

                    tbp.TreeFilter = "[生产中] = True And " & "[零件项号] = '" & e.NewValue & "'"

                    Tables("轴类生产点检记录").Cols("生产批号").DropTree = tbp.Build()

                Else

                    MessageBox.Show("输入的零件项号有误,请检查该零件是否当前在产", "提示")

                    e.Cancel = True

                End If

            End If

        Else If e.NewValue Is Nothing Then

            Tables("轴类生产点检记录").Cols("生产批号").DropTree = Nothing

        End If


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


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

代码看不出问题,可能是多个事件互相影响的原因

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


加好友 发短信
等级:幼狐 帖子:86 积分:876 威望:0 精华:0 注册:2014/7/25 23:20:00
  发帖心情 Post By:2016/8/2 11:06:00 [只看该作者]

想问一下,一般是什么情况下会发生这种问题。
另外对于SQL数据的处理有没有特别需要注意的地方?
谢谢


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


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

就是多个事件互相影响的时候。

加载到项目,处理方法都一样的,没有什么特别的

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


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

 逻辑上,好像是没有问题。

 

 也有一种可能,是网络的问题,导致保存的时候,一些数据无法保存进去,数据就丢失了。网络不稳定的时候,会有此问题。


 回到顶部