标题:用SORT ZAP 遇到的问题
只看楼主
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分: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
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册: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
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:1 
还可以ZAP IN (A表所在的工作区)。

活到老,学到老! http://www. E-mail:hu-jj@
2016-07-10 05:50
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
直接建A表索引不好吗?不用绕圈子。
2016-07-10 07:01
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分: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
等 级:新手上路
帖 子:206
专家分: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
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册: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
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:1 
编程的关键是思路
编程的基础是知识

坚守VFP最后的阵地
2016-07-10 10:26
cluna2013
Rank: 1
等 级:新手上路
帖 子:206
专家分: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-466801-1-1.html




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

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