| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3619 人关注过本帖, 1 人收藏
标题:今天无意发现解决Grid白屏问题。
只看楼主 加入收藏
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
结帖率:98.98%
收藏(1)
已结贴  问题点数:10 回复次数:30 
今天无意发现解决Grid白屏问题。
前段时间,用SQL数据库,在本地测试时,表格没有白屏现象,但通过VPN连接到不同局域网的SQL数据库时,由于网速慢,以前的查询用到表格Grid时,发现有白屏现象。
以前是这样查询的,
sqlexec(nhandle,'select * from sql_table','sql_table')
select * from sql_table into curs  sql_table_tmp readwrite
use in sql_table
select sql_table_tmp
THISFORM.Grid1.RECORDSOURCE=''
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
当重复按查询按钮时,我发现不在同一个局域网时,在查询回来的数据量很大的时候,会出现表格白屏,
今天无意发现,在查询前,先修改表格的数据源,竟然无意解决了这个白屏问题
把以上语句改为。

**清空表格,同时更换数据源,防止查询过程表格出现白屏,没这段会白屏
select * from sql_table_tmp where .f. into curs sql_table_tmp1
select sql_table_tmp1
THISFORM.Grid1.RECORDSOURCE=''
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
thisform.grid1.Refresh

sqlexec(nhandle,'select * from sql_table','sql_table') &&先查询数据到sql_table,不能写的
select * from sql_table into curs  sql_table_tmp readwrite &&把查询数据改为可以写的表去sql_table_tmp
use in sql_table &&关闭临时表
select sql_table_tmp &&表格的数据源sql_table_tmp
THISFORM.Grid1.RECORDSOURCE=''
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
求分享


[此贴子已经被作者于2015-12-13 16:50编辑过]

2015-12-13 13:16
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
不错
2015-12-13 13:53
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
先查询数据,获得有效的临时表之后再更新表格的数据源如何?

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2015-12-13 15:55
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用hu9jj在2015-12-13 15:55:42的发言:

先查询数据,获得有效的临时表之后再更新表格的数据源如何?
我本来就是,先查询,然后在更新表格的数据源,就是会白屏,(我说的白屏,是连接其他内不同局域网的SQL数据库,由于网速慢,也不是慢,就是没局域网快)
由于,查询按钮可以,查询多次,按第1次,按第2次,对表格来说,他的数据源都是同1个表格,“先查询数据,获得有效的临时表之后再更新表格的数据源如何”他的数据源还是同1个名称。。
但我发现,在内网,就不会白屏,我在查询之前,把表格的数据源更换为其他的数据源后,等到查询数据回来了,再更换会来,就不会出现白屏了。。
至于是什么原因,就不知道了。。

2015-12-13 16:46
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
也可以先ZAP清空GRID的数据记录,再 APPEND FROM 查询到的数据进去。
2015-12-13 19:14
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:5 
没有显示内容的控件,应在拥有数据内容之后才可视。这其实就是静态设计与动态设计的区别,即我以前说过的,在设计器拖拉控件设计,属于静态的,但现实情况,是有一些画面内容必须(或应该)在运行时根据需要在适当的时候才显现或消隐,那是动态的,静态设计出来的画面,束缚了动态思维,一旦设计时没有控件属性框,你就不知道在哪里和如何书写动态控制代码。

授人以渔,不授人以鱼。
2015-12-13 20:13
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
及时更新数据源,就不会发生白屏现象

坚守VFP最后的阵地
2015-12-13 20:57
qingfameng
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:35
帖 子:964
专家分:3019
注 册:2010-2-6
收藏
得分:0 
介绍经验精神可佳。
2015-12-13 21:40
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用sdta在2015-12-13 20:57:07的发言:

及时更新数据源,就不会发生白屏现象

我查询数据后,马上
THISFORM.Grid1.RECORDSOURCE=''
THISFORM.Grid1.COLUMNCOUNT = -1
THISFORM.Grid1.RECORDSOURCE=ALIAS()
还不算及时啊?同样的程序,用本机(内网)的SQL数据库测试,好像看不到白屏现象,不知道是本地SQL数据库读取快,“白屏”闪就过了还是什么,反正看不到。
但用外网的SQL数据库,在读取回来的数据量比较多的时候,就有,明显的白屏现象,如果回来的数据少的时候,没明显白屏。
2015-12-14 08:47
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:0 
以下是引用TonyDeng在2015-12-13 20:13:59的发言:

没有显示内容的控件,应在拥有数据内容之后才可视。这其实就是静态设计与动态设计的区别,即我以前说过的,在设计器拖拉控件设计,属于静态的,但现实情况,是有一些画面内容必须(或应该)在运行时根据需要在适当的时候才显现或消隐,那是动态的,静态设计出来的画面,束缚了动态思维,一旦设计时没有控件属性框,你就不知道在哪里和如何书写动态控制代码。

按T版的说法,怎么处理?还是用我自己说的方法?查询之前,清空数据,更换数据源?
2015-12-14 08:48
快速回复:今天无意发现解决Grid白屏问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034441 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved