注册 登录
编程论坛 VFP论坛

求助:PACK命令在WIN10里执行不了?

XUFN 发布于 2021-05-14 17:55, 1680 次点击
下面的代码是把GRID表里的临时数据刷新到真正的 Voucher 表里,单机版的,在WIN7里执行没有问题,但编译后放到WIN10电脑里就出错了,提示文件已经存在,后来没办法,只能做删除标记了,不做彻底删除了,只能放弃 PACK 命令了,望大狭能支招。

 Thisform.LockScreen= .T.
 This.RecordSource=""
 Wait Windows "凭证数据保存中..." AT Srows()/2,Scols()/2  Nowait
 Select Alltrim(帐套)+Alltrim(会计期) AS MyKey FROM Temp_Q_Voucher Noconsole Distinct Into Cursor Temp_PZ_Key
 Delete From Voucher Where Alltrim(帐套)+Alltrim(会计期) IN(Select MyKey From Temp_PZ_Key)
 Select Voucher
 Append From Temp_Q_Voucher
 Select Voucher
 Use
 USE Voucher IN 0 Exclusive  
 Select Voucher
 Pack  &&就这个命令,用在WIN10里,通过不了
 Select Voucher
 USE
 IF !Used('Temp_Q_Voucher')
     USE Temp_Q_Voucher IN 0 Exclusive
 ENDIF   
 SELECT Temp_Q_Voucher
 ZAP
 GO TOP
 WAIT CLEAR
 This.Init()
 Thisform.LockScreen= .F.

奇怪的是清空GRID临时表却可以用ZAP命令,没有出错问题。

[此贴子已经被作者于2021-5-14 17:59编辑过]

6 回复
#2
xuminxz2021-05-14 18:39
PACK在WIN10中没有任何问题,请给出具体错误信息。有一种可能是你用双系统,Voucher在win7中运行过,win10没有权限。
#3
radiofan2021-05-15 09:00
pack跟系统有关系吗?
#4
laowan0012021-05-15 10:02
Select Voucher EXCLUSIVE
这样试试
#5
XUFN2021-05-15 14:26
回复 4楼 laowan001
感谢各位,电脑在单位,星期一再测试看看,估计是表独占的代码没写对,也有可能WIN10权限问题,最近部分同事新电脑都是WIN10了,我的电脑还是WIN7,同样的代码,一个正常,一个报错,出错信息是文件己存在,别人电脑里没有Foxpro,调试不方便,我之前是直接把Pack命令给删了,重编译后发给同事,就不报错了。问题是如果只做删除标记不彻底删除记录,数据库会愈来愈大,迟到会影响后面的执行效率
非常感谢这个论坛!
#6
xuminxz2021-05-15 20:54
Select Voucher
 Use
 USE Voucher IN 0 Exclusive  
 Select Voucher
这是做什么,关上又打开?这是一个视图吗?
#7
gs25367856782021-05-17 09:56
用独占方式打开一个表
1