瑞克是正确的。您的 Foxpro 设置默认授予 Foxpro 会话对“使用”命令打开的任何表的独占权限。
当您打开表格时,当 VB 应用程序正在运行时,您会被彼此绊倒。
我假设您在 Windows 资源管理器中双击 DBF 文件并打开它们,而不是使用 Foxpro 中的“使用”命令来查看表格。如果您只想这样做,那么(在 VFP 9 中)关闭除一个 VFP 之外的所有会话。转到工具->选项->数据选项卡并取消选中“以独占方式打开”。现在关闭该会话。这将保存设置。下次双击 DBF/DBC 时,它将打开所有具有“共享”访问权限的表。
否则,要使用“use”命令从 VFP 中访问表,请执行以下操作:
独家访问:
use in 0 exclusive <table-file-path>
对于共享访问:
use in 0 shared <table-file-path>
您还可以给它一个 noupdate 标志以使其只读。(查询的安全方式。)
use in 0 exclusive noupdate <table-file-path>
或者
use in 0 shared noupdate <table-file-path>
据我了解,主要问题是 VB 接管了数据库的“独占”权限,并在您打开表(共享或其他方式)时崩溃。
然而,这听起来更像是一个时间问题,而不是 Foxpro 的问题。假设您没有重写 VB 应用程序的访问权限或权限,唯一的另一种选择是找到一个主 VB 应用程序没有运行的时间(可能是深夜?)并运行 Foxpro 查询(. PRG 文件)在调度程序上。查询可以复制到另一个文件,例如 Alex 建议的。
运行 Foxpro 程序的命令很简单:
foxpro <program-name>.prg
这可以放在由通用调度程序运行的 .bat 或 .cmd 文件中。
但是,有一个问题:最好自己从 VFP 中编译 .prg,而不是让 VFP 为您编译它(如果您不这样做,它会这样做。)另外,如果您进行了更改并且不要t 重新编译,VFP 将使用最后编译的版本(只是为了惹恼你。)
如果您已经知道这些东西,请为矫枉过正感到抱歉。
祝你好运。