Foxtable(狐表)用户栏目专家坐堂 → [求助]报错


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

主题:[求助]报错

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


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
[求助]报错  发帖心情 Post By:2017/8/31 13:48:00 [显示全部帖子]

菜单上做了个更新按键,执行代码:

Network.DownloadFile("ftp://ftp_XXX:ftp-XXX@XXXXXXXX/Update/Update.txt","D:\data\Update.txt","" ,"" ,False, 100000, True)

Network.DownloadFile("ftp://ftp_XXX:ftp-XXX@XXXXXXXX/Update/Update1.zip","D:\data\Update1.zip","" ,"" ,False, 100000, True)

Syscmd.Project.Update()

更新开始都正常,但是提示更新成功弹出报错对话框!报错内容为“未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值


 


图片点击可在新窗口打开查看此主题相关图片如下:tip2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/8/31 14:04:10编辑过]

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


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2017/8/31 14:18:00 [显示全部帖子]

复制粘贴过去也是报错!~我也想过程序本身问题,但是运行程序的时候一切都正常!只有在更新的时候才会报这错误!~开始也是直接用Syscmd.Project.Update()的方法更新,update1放在FTP端,但是一直卡在下载进度那里不动,看了帖子后,才下载到本地来更新,是可以更新了,但是就是报错!~

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


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2017/8/31 15:22:00 [显示全部帖子]

以下是引用有点甜在2017/8/31 15:15:00的发言:

我是叫你把update1.zip解压出来复制粘贴覆盖原来的project文件夹。这样运行程序是否正常?

 

手动更新之后,打开项目是否正常?点击按钮更新之后,打开项目是否正常?

解压出来复制粘贴原来的project正常,点击按钮更新后,打开项目也正常!就是提示更新成功后,会弹出报错窗口,其他一切都正常!~不影响使用,但是怕交付不了!~图片点击可在新窗口打开查看


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


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2017/8/31 15:59:00 [显示全部帖子]

以下是引用有点甜在2017/8/31 15:34:00的发言:

 

最关键,是点击按钮更新以后,是否真的更新成功了?

 

如果更新成功了,那就把错误屏蔽一下 http://www.foxtable.com/webhelp/scr/2655.htm

 

谢谢有点甜老师,这是最后的方法了!

我还在测试,这次更新我只是在一个窗口上加了一个从FTP下载文件的按键,按键的代码如下:

Dim ftp1 As new ftpclient
ftp1.host="xx.xx.xx.xx"
ftp1.Account = "xxx"
ftp1.password = "xxx"
Dim ts As DataRow = CurrentTable.DataTable.Find("[_Identify] = '" & CurrentTable.Current("_Identify") & "'" )
If ts IsNot Nothing
    Dim ls As List(of String) = ts.Lines("文件列")
    Dim dlg As New FolderBrowserDialog
    If dlg.ShowDialog = DialogResult.Ok Then
        Dim ph As String = dlg.SelectedPath
        For Each s As String In ls
            Dim ary() As String = s.split("/")
            Dim i As Integer = ary.length - 1
            Forms("请稍后").open
            If ftp1.Download(s,ph & "\" & ary(i))= True Then
                Forms("请稍后").Close
                Messagebox.show("下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            Else
                Forms("请稍后").Close
                Messagebox.show("下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            End If
        Next
    End If
End If

在此之前直接用Syscmd.Project.Update()更新都是正常的!我刚尝试把这个按键去掉,同样还是报错!到底这个错误提示是表示什么意思呢?看别人的帖子,说是关联引起的!可更新前后关联我都没动过啊!


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


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2017/8/31 16:17:00 [显示全部帖子]

BeforeCloseProject事件中我没有写代码!~

刚测试发现,当打开软件后,同步当前任意一张表的时候,就会出现报错!


图片点击可在新窗口打开查看此主题相关图片如下:tip3.jpg
图片点击可在新窗口打开查看

但是只是第一次同步的时候会出现,以后再怎么同步都正常,关掉软件重新打开后,还是会第一次同步的时候出现报错!


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


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2017/8/31 16:35:00 [显示全部帖子]

1、因为不单是采购单一张表,是程序的所有表再打开软件后的第一次同步的时候都会报错,所以,我怀疑应该不是数据库的表设置了约束,我一直没动过数据库的设置。会不会是AfterOpenProject有问题呢?代码如下:

Dim cd As System.Globalization.DateTimeFormatInfo = System.Globalization.DateTimeFormatInfo.CurrentInfo
Dim DateInfo As System.Reflection.FieldInfo = cd.Gettype.GetField("generalLongTimePattern", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance)
If DateInfo IsNot Nothing Then
    DateInfo.SetValue(cd, "yyyy-MM-dd HH:mm:ss")
End If
QQClient.ServerIP = "XX.XX.XX.XX" '指定服务器IP地址
QQClient.ServerPort = 52177  '指定服务器端口
Dim us As String = user.group & "." & user.name
QQClient.UserName = us
QQClient.Password = "123"
If QQClient.Start() = True '如果登录成功
    Dim msg As String =  "恭喜,OpenQQ登录成功!"
    If QQClient.ServerMessage > "" Then '如果服务器返回了欢迎信息
        msg = msg & QQClient.ServerMessage
    End If
    PopMessage(msg,"提示",PopiconEnum.Infomation,5)
Else '如果登录失败,显示服务器返回错误信息
    PopMessage("QQClient登录失败,原因:" & vbcrlf & QQClient.ServerMessage,"提示",PopiconEnum.Error,5)
End If

2、不管是在开发版源文件上还是在发布后的Publish文件里面打开软件,都同样会在第一次同步任意表的时候报同样的错误,只有第一次同步,不关软件以后怎么同步都不会报错!


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


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2017/8/31 16:43:00 [显示全部帖子]

我的想法是:同步的时候会触发什么呢?无非是datatable重新load,假设数据库文件链接设置都正确,那就应该不会报错啊!如果数据库文件链接设置有问题,那为什么只是在第一次同步的时候会报错呢?和用户数据表有关?和QQsever有关?百思不得姐啊!图片点击可在新窗口打开查看


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


加好友 发短信
等级:幼狐 帖子:122 积分:1805 威望:0 精华:0 注册:2016/8/30 12:08:00
  发帖心情 Post By:2017/8/31 17:39:00 [显示全部帖子]

呼。。。20多个关联表都删掉重新设置了,不报错了!搞死了!~谢谢大大!

 回到顶部