| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2129 人关注过本帖
标题:用SORT ZAP 遇到的问题
只看楼主 加入收藏
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:11 
用SORT ZAP 遇到的问题
我在程序中录入新数据之后,先通过SORT A TO B ON time/d 排序生成B表,接着打算用ZAP先将A表数据删除之后,再用APPEND FROM从B表导入SORT好了的数据,不想使用ZAP通不过,频幕提示‘文件已在另一个区打开。’
请教各位高手,这个问题如何解决?
搜索更多相关主题的帖子: 如何 
2016-07-09 21:19
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:1 
ZAP 时,要独占表的。
可以这样
USE 表A EXCL IN 0
USE 表B EXCL IN 0
SELECT 表A
ZAP

2016-07-09 22:11
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:1 
先关掉,然后打开再删
2016-07-09 23:01
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:1 
还可以ZAP IN (A表所在的工作区)。

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2016-07-10 05:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:2 
直接建A表索引不好吗?不用绕圈子。
2016-07-10 07:01
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 2楼 mywisdom88
不好使。情况是这样:我在同一个Form1文件上使用了Pageframe,并且使用了
SELECT XX1,XX2,XX3 FROM A INTO CURSOR bglist语句,用在在Page2;在Page1录入新数据之后存盘,并且试图将新数据放在最前面,因此使用
    SORT TO B ON time/d
    ZAP            && 运行到此,出现“文件已在另一个工作区打开。”
    APPEND FROM B
    ERASE B.dbf   
    ERASE B.fpt
我曾经使用另一种方法,在录入之后转到另外一个Form2文件上再排序。那样一点问题没有。
如果SELECT XX1,XX2,XX3 FROM A INTO CURSOR bglist功能不能暂时关闭,
能否不用SORT,改动读表这一块,从表的底部向上看?


[此贴子已经被作者于2016-7-10 09:27编辑过]

2016-07-10 08:47
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 4楼 hu9jj
用ZAP IN,后面跟工作区?我搞不清楚这个工作区是第几?
看《帮助》也没搞清楚。我试着使用ZAP IN 0、ZAP IN 1,A表关上了,还得点开,点开又是“文件正在使用”
2016-07-10 09:24
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3147
专家分:8408
注 册:2015-3-25
收藏
得分:4 
回复 6楼 cluna2013
你在Page1;Page2中,是不是用到什么表格之类的东西,绑定了数据源,会提示表给占用的。
你目的是把刚才加如的数据,显示在最前面,可以按5楼说的,建立索引就可以了。比如按时间索引
如果你一定要生成新表,还有种方法就是
select * from 表A order by 排序字段 desc into table 表A
2016-07-10 09:57
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:1 
编程的关键是思路
编程的基础是知识

坚守VFP最后的阵地
2016-07-10 10:26
cluna2013
Rank: 1
等 级:新手上路
帖 子:234
专家分:0
注 册:2013-3-2
收藏
得分:0 
回复 8楼 mywisdom88
OK,初步成功,不用SORT改变表的排序,通过SELECT XX1,XX2,XX3 FROM A RDER BY time DESC INTO TABLE bglist,显示新数据在前;
另外,原来在打开表的时候,仍然用[A.time]等等,修改后为
SELECT XX1,XX2,XX3 FROM A ORDER BY time DESC INTO TABLE bglist,
[A.time]改为[bglist.time]。
但是问题又来了:由于bglist是旧表,不能显示新增加的数据,只能退出程序之后,再次进入,才能看到新数据。
如何不退出就更新?


[此贴子已经被作者于2016-7-10 17:10编辑过]

2016-07-10 11:33
快速回复:用SORT ZAP 遇到的问题
数据加载中...
 
   



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

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