你提到你有 VFP 6 ......我将从打开 VFP 开始。在命令窗口中,键入
CD "C:\wherever Your Application Data is" (enter)
use Message SHARED (enter)
browse normal (enter)
如果您可以看到数据的内容,则说明文件没有损坏。
对于这样一个旧应用程序来说,这显然是一个最近的问题。当您提到以“共享”模式打开文件时。是否添加了代码来打开文件?如果是这样,“消息”表是否已经打开并由同一个别名使用?如果是这样,那将导致它失败。您不能在两个不同的工作区中打开具有相同“别名”名称的同一个表。如果是这种情况,您可以尝试通过执行类似...
if used( "Message" )
select Message
else
select 0
use Message
endif
... continue with rest of code...
每个评论/反馈
如果它是从服务器关闭的,我已经看到,在文件似乎被用户锁定之前,由于无效断开连接。有时,它只要求所有用户再次注销/登录以强制将其所有资源释放到服务器......但如果实际的服务器被关闭并重新启动,那么无论如何用户会话都会被清除。我会检查服务器仍然认为谁仍然打开 Message.dbf 表。此外,如果需要,将所有用户踢出并手动使用 VFP 中的表格,仅用于微笑,打包它
我还将通过简单复制/粘贴数据所在的整个文件夹进行备份...然后启动 VFP 并执行以下操作...
cd "whatever path"
use Message EXCLUSIVE
PACK
use
如果它是数据库的一部分,则数据库可能会以某种方式/某处损坏。为了测试...
cd "whatever path"
close all
open database YourDatabase Exclusive
Validate Database
看看它给了你什么
...
再来一条评论。我看到你提到 NetWare (Novell)。我过去看到的东西... 最近是否有任何用户从系统中删除(即:从 NetWare)?如果是这样,并且文件最初是由“该用户”创建的,那么一旦该用户消失,所有对该文件执行任何操作的权限也将消失。您最好以管理员身份登录,选择所有文件并以管理员身份“获得所有权”。管理员永远不会有添加/编辑的限制,也永远不会作为用户被删除,因此再也不会出现这个问题。同样,这只是我从历史中记得的另一个选择,可能是问题的一部分。