Foxtable(狐表)用户栏目专家坐堂 → 死机


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

主题:死机

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/16 18:11:00 [显示全部帖子]

 你的升级代码是不是写错了?

 

 

 

Update的语法:

Syscmd.Project.Update(Prom1, Prom2)

Prom1: 可选参数,逻辑型,没有发现新版本时,是否提示用户。
Prom2: 可选参数,逻辑型,发现新版本时,是否提示用户升级。

例如希望自动升级能够完全"静默",发现新版本时不提示,自动开始升级,没有发现新版本时也不提示:

Syscmd.Project.Update(False,False)

如果我们在AfterOpenProject下面的代码:

Syscmd.Project.Update(False,False) 
Forms("窗口1").Open() '可能会出错
'后续其它代码

目的是希望打开项目的时候自动升级,然后打开窗口1。
但是上述代码肯定会在升级成功之后提示错误,因为一旦升级成功,Foxtable就会关闭,后面的打开窗口代码就会出错,当然后续其它的代码也一样会出错。
我们可以用下面的代码避免错误:

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    Forms("窗口1").open()
    '后续其它代码
End If

也就是说Update执行后会返回一个逻辑值,如果升级成功,返回True,否则返回False。

总之,如果需要在AfterOpenPoject事件中实现自动升级,那么原有的AfterOpenProject事件代码必须包括在这个判断中,只有没有升级的情况下,才执行原来的代码:

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    '原AfterOpenProject事件代码
End If


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/16 18:18:00 [显示全部帖子]

全部写在 If 里面

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/17 8:56:00 [显示全部帖子]

既然自动升级了,为什么还要打开登录窗口?

If Syscmd.Project.Update(False,False) = False Then '如果没有升级
    TableCaptionVisible = False
    Forms("开始").open()
   
    Dim cmd As New SQLCommand
    cmd.CommandText = "Select * From {用户} Where [Name] Is Null"
    _UserTable = cmd.ExecuteReader(True)
    Forms("用户登录").Open()
    If _UserName = "" Then
        Syscmd.Project.Exit()
        Return '这个要加上,因为既然要退出,就不应该再执行后面的初始化代码了,否则会出错
    Else
        DataTables("用户").loadfilter ="name = '" & _username & "'"
        DataTables("用户").load
    End If
End If

[此贴子已经被作者于2017/5/17 8:56:25编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/17 14:46:00 [显示全部帖子]

 你的数据库是2008吗?看看

 

请下载安装下面的客户端程序:

 

http://www.foxtable.com/download/sqlncli.msi

 

 闪退的问题,看看 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=96796&replyID=667071&skin=1

 

 

 


 回到顶部