| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1585 人关注过本帖
标题:表格怎么有时不能加载?
只看楼主 加入收藏
林森
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-13
收藏
 问题点数:0 回复次数:11 
表格怎么有时不能加载?
在表单中设置了数据环境,并将数据环境中的表托到表单上,成为一个grid,但在运行表单时,有时grid中空白一片,在VFP6.0、VFP9.0中都偶尔出现这现象,也换过机器试验。哪位高手遇到过这情况?怎么解决?(我的数据表字段多一点,有53个字段)
搜索更多相关主题的帖子: 加载 表格 grid 表单 环境 
2007-03-08 17:45
wjw0317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-3-6
收藏
得分:0 
我也是遇到这个问题,和字段数目无关,开始显示全部记录,执行完button的click事件后grid就空白了.

SET FILTER TO 单位名称=ALLTRIM(thisform.text1.value)
GO top
thisform.Refresh

希望高手指点.
2007-03-08 19:47
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
不会吧,我做过类似的过滤操作,毫无问题,想显示什么数据就显示什么数据。
检查一下表中有没有符合条件的记录。

认真看书学习,弄通Fox主义。
2007-03-08 19:55
songyuyu
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:6090
专家分:25
注 册:2007-1-17
收藏
得分:0 

在表单 UNLOND 加上代码

select 表名
SET FILTER TO

试试看


我喝水只喝纯净水,牛奶只喝纯牛奶,所以我很单纯……
2007-03-09 10:49
wjw0317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-3-6
收藏
得分:0 

还是不行!

2007-03-09 16:37
songyuyu
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:6090
专家分:25
注 册:2007-1-17
收藏
得分:0 
表单属性datasession 设置为 私有

我喝水只喝纯净水,牛奶只喝纯牛奶,所以我很单纯……
2007-03-09 16:42
wjw0317
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-3-6
收藏
得分:0 
是私有的,真郁闷.
2007-03-09 17:40
林森
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-13
收藏
得分:0 
关键问题是这种情况偶尔发生,所以才
2007-03-09 20:38
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 

我也碰到过这样的情况,这可能是它的一个bug


2007-03-09 21:26
林森
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-5-13
收藏
得分:0 

jockey说得有道理, http://www.cnblogs.com/zhenyulu/articles/28418.html这里谈到一点此问题

三、逻辑删除与物理删除

逻辑删除是VFP的特色,很多人对此也有看法。逻辑删除乍一看就象回收站,误删除的记录还可以还原回来,确认不需要的再清空。可也有很多VFP编程人员养成了一个习惯,就是DELETE后立即PACK,凭什么删除还犹豫呢?可他们很快就发现,PACK命令似乎总和他们作对,有时一PACK,窗口上的网格控件只剩下白板一块,什么都没有了,有时执行PACK会报错,说“必须以独占方式打开表”,反正总是不顺。为什么会这样呢?


话又转到“记录号”上来了。假设我们要删除年龄为22的记录,因为VFP将记录号做“主键”来用,若VFP直接执行物理删除的话,那么当第三条记录从磁盘上清理掉后,原来记录号为 4 的记录就变成了记录号为 3 的记录(物理顺序变了),在这个时候,如果另外一个用户更新了原有记录号为 3 的记录并进行提交,就会误修改原来记录号为 4 (现在记录号为 3)的记录。VFP为了防止这种共享冲突,添加了两个限制:一是先逻辑删除再物理删除,二是物理删除时必须以独占方式打开表。这样的话,用户执行逻辑删除仅仅是在记录上加一个删除标识,不会从磁盘文件中真正删除,也就不会改变记录号,所以可以避免并发冲突。当用户想真正物理删除数据时,必须以独占方式打开表,以确保没有其他人正在使用数据库,便不会产生共享问题了。


此外,VFP为了让用户感觉不到逻辑删除记录的存在,保留了SET DELETE ON、SET DELETE OFF设置,力争将逻辑删除带来的影响减少到最小。但怎么可能呢?有谁会注意到在SET DELETE OFF时使用“SELECT * FROM STUDENT”命令需要加上条件“WHERE NOT DELETED()”以排除逻辑删除的记录呢?甚至通过“SELECT COUNT(*) FROM STUDENT”统计学生人数时,DELETE状态也会影响检索结果!


由此可见很多麻烦都是“记录号”惹的祸,也可以看出VFP在这里的良苦用心。

2007-03-09 21:42
快速回复:表格怎么有时不能加载?
数据加载中...
 
   



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

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