OleDbException 无法打开文件 dbf

OleDbException Cannot open file dbf

在我 运行 查询 SELECT SomeColumn FROM SomeTable 之后,通过 VFP 中的命令 window,我无法 访问那个 table 从 C# 使用 OleDb Provider 直到我关闭 VFP。

System.Data.OleDb.OleDbException: 'Cannot open file \some-server\some-share\SomeTable.dbf.'

这就像 VFP 在执行查询后没有关闭文件句柄。

如何告诉 VFP 关闭 file/table w/o 不得不关闭 VFP?

use

不带任何参数关闭当前工作区中的 table\cursor。

use in (select('SomeTable'))

仅在打开时在任何工作区关闭它。

这两个命令都适用于当前数据会话。如果您使用默认会话以外的任何会话,则需要循环这些会话并在其中关闭。

更简单的方法是执行:

set exclusive off

在 VFP 中打开任何 tables 之前。然后 tables 将被共享打开,您可以从 VFP 和外部打开它们。

或转到 Tools -> Options -> Data 并取消选中 "Open Exclusive",使其成为永久设置:

顺便说一句,我回答说考虑过使用 "use" 或 "select ... from thatTable" 打开的任何 table。

不过您的问题含糊不清,也许您的意思是 table 是作为查询的结果创建的(尽管您的查询没有该目的地)。如果是这种情况,那么创建的 table 将独占使用,直到您关闭它(使用顶部的命令之一)。