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 将独占使用,直到您关闭它(使用顶部的命令之一)。
在我 运行 查询 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 将独占使用,直到您关闭它(使用顶部的命令之一)。