Foxtable(狐表)用户栏目专家坐堂 → 数据库迁移后的问题


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

主题:数据库迁移后的问题

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


加好友 发短信
等级:五尾狐 帖子:1175 积分:8792 威望:0 精华:0 注册:2012/4/18 16:28:00
数据库迁移后的问题  发帖心情 Post By:2017/4/17 14:26:00 [只看该作者]

请教老师,原来在本机电脑上装了SQLSERVER2008研发版的数据库,现把数据库迁移到阿里云的数据库SQLSERVER2008企业版,进行测试,出现以下问题

 

1. 从自定义登录窗口登录后,主窗口打不开,也不报错,不显示任何窗口,无法使用已设计好的项目;原来在本机连接的数据库上测试所有功能都是正常的.

 

迁移方式,采用的是任务——生成脚本,把脚本文件拷贝至阿里云服务器上,执行脚本文件

 

在设计项目上已修改数据库的连接都没有问题,也能从新的数据库调取数据,就是打不开主窗口。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/17 15:12:00 [只看该作者]

 迁移数据库的方法尽量这样做:

 

方法一:备份还原。备份为bak文件,然后还原;

 

方法二:把数据库分离,然后拷贝,然后再附加上去。

 

 既然你没有修改到代码,那么你本来是怎样的,现在也是怎样的。


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/17 15:15:00 [只看该作者]

 既然是主窗口无法打开,那么你就既然msgbox定位一下是哪里有问题。执行show为什么不打开窗口。


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


加好友 发短信
等级:五尾狐 帖子:1175 积分:8792 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/4/21 21:45:00 [只看该作者]

请教老师,远程数据库重新按备份,再还原迁移数据库后,1楼的问题依然存在,经反复查验测试,主窗口的Timertick设置为False可以打开主窗口,设置为True启用代码就无法打开主窗口,主窗口的Timertick里有如下类似代码段二十多个,不知问题是否由类似代码导致,现在不知怎么解决了???

 

Dim pbx As WinForm.PictureBox = e.Form.Controls("PictureBox3")
Dim lbl As WinForm.Label = e.Form.Controls("Label130")
If lbl IsNot Nothing Then
   Dim Count As Double
   Count = DataTables("项目信息主表").SQLCompute("Count(项目编号)","信息甄批_投审人员 Like  '%" & _UserName & "%' and (信息甄批_投审确认 not Like '%" & _UserName & "%' or 信息甄批_投审确认 Is null)")
   If Count = 0 Then
        pbx.ImageFile = "Green.ico" 
        lbl.ForeColor = Color.Green  
    ElseIf Count >= 1 Then
        pbx.ImageFile= "Red.ico" 
        lbl.ForeColor = Color.Red  
    End If
lbl.Text = "" & Count & ""
Application.DoEvents() 
End If


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110746 积分:563656 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/4/21 22:22:00 [只看该作者]

1、确认连接到正确的数据库

2、打开窗口,把Timertick的代码放到命令窗口执行看有没有问题

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


加好友 发短信
等级:五尾狐 帖子:1175 积分:8792 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/4/24 15:55:00 [只看该作者]

经过,几天的折腾,连接阿里云数据库后主窗口不能打开的问题依然存在,经测试

 

1. 在局域网上木有这个问题,一切正常,速度也很快

 

2. 就是不启用主窗口的TIMERTICK,或TIMERTICK只有少量代码,有时可打开主窗口,但速度很慢很慢;如果代码多了,根本打不开主窗口

 

3. 数据源连接已是正确的,能正常从数据库调用数据

 

4. 把TIMERTICK里的全部代码放在命令窗口测试,没有任何提示,应该也是正常的

 

怀疑是SQL SERVER 2008 R2的问题,也在阿里云的ECS上重新装了SQL2008 ,也是同样的问题,现在都不知道问题在哪里了???


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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/24 16:02:00 [只看该作者]

 既然是打不开窗口的问题,那么就应该把你窗口afterLoad事件、timertick事件的代码注释掉,单独测试是否能打开。

 

 如果打开了,再逐步加入代码,确定一下代码的位置。

 

 我估计:应该是你要加载的数据太多,而互联网的响应速度明显比你局域网要慢,所以你就要等一段事件。


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


加好友 发短信
等级:五尾狐 帖子:1175 积分:8792 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/4/24 16:17:00 [只看该作者]

老师的这个方法,我也试过,全部afterload代码清除不使用,也是一样,

 

只有把timertick里面的代码不启用或全部清除才能打开主窗口,也测试过在timertick里面一段代码一段代码的加入测试,有时候加一段、二段可以打开,有时候又不行;有时候加十段代码可以打开,多数时候又不行 ,1楼代码我还加上了  If forms("主窗口").Opened Then,每段代码都这样加了,也不行,就是打不开主窗口,除非不用timertick

 

其他表都是外部表,只有主窗口的所有者表是内部表,是否会是这个问题

[此贴子已经被作者于2017/4/24 16:19:30编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/4/24 16:26:00 [只看该作者]

 你timertick事件写了什么代码?间隔多久执行一次?

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


加好友 发短信
等级:五尾狐 帖子:1175 积分:8792 威望:0 精华:0 注册:2012/4/18 16:28:00
  发帖心情 Post By:2017/4/24 16:45:00 [只看该作者]

代码段如下,大概同类的代码段有40个,间隔1000

 

If forms("主窗口").Opened Then
Dim pbx As WinForm.PictureBox = Forms("主窗口").Controls("PictureBox3")
Dim lbl As WinForm.Label = Forms("主窗口").Controls("Label130")
If lbl IsNot Nothing Then
   Dim Count As Integer 'Double
   Count = DataTables("项目信息主表").SQLCompute("Count(项目编号)","信息甄批_投审人员 Like  '%" & _UserName & "%' and (信息甄批_投审确认 not Like '%" & _UserName & "%' or 信息甄批_投审确认 Is null)")
   If Count = 0 Then
        pbx.ImageFile = "Green.ico" 
        lbl.ForeColor = Color.Green  
    ElseIf Count >= 1 Then
        pbx.ImageFile= "Red.ico" 
        lbl.ForeColor = Color.Red  
    End If
lbl.Text = "" & Count & ""
Application.DoEvents() 
   End If
End If


 回到顶部
总数 11 1 2 下一页