1

我正在寻找如何使用 C# 访问 Paradox 数据库。

问题是,工作站上所有准备运行的程序都使用目标数据库。在它运行之前,oleDbConnection.Open()抛出异常。

如果我没有在同一台计算机上运行 .NET 程序,而是在另一台 Windows 工作站上运行并使用共享文件夹,一切正常。原始程序具有读/写访问权限,并且我根据需要具有只读访问权限。当然,在第二台计算机上,NET DIR 指向共享文件夹中的正确目录。

如果我使用共享文件夹并在同一台计算机上运行两个程序(我的程序和原始程序)并将 BDE 配置为使用从 C# 到 Paradox 数据库的共享文件夹连接,则无法打开。

我试图以管理员帐户权限从 .NET 运行程序,但它没有帮助。

因此,我采用了另一个程序 Paradox 数据库编辑器,并尝试在原始程序运行时编辑其中一个表。在用户权限上,它给了我关于访问网络文件夹的错误。但是当以管理员权限运行时,我可以成功读取数据库,以及只有 Paradox 数据库编辑器仅在用户帐户权限下运行时。

4

1 回答 1

0

听起来您可能遇到了 Paradox 锁定机制的问题。当 Paradox(在您的情况下为 BDE)访问表时,它通过在表目录中的特殊锁定文件中创建并创建条目来在表上放置一种或另一种类型的锁。这些由特定位置的单个 Paradox.net 文件控制。

我认为您是说当前应用程序正在使用 BDE,而您可能正在使用其他东西。我不确定您是否可以这样做,但如果可以,您将必须使用相同的锁定文件和 Paradox.net 文件。此外,您必须使用相同的悖论版本逻辑。在几个 Paradox 版本中,这种锁定机制发生了一些变化。尝试分别运行每个程序并查看它创建的文件和位置。它们应该是相同的。

我认为私人目录并不重要。事实上,2 个用户不能拥有相同的私有目录。

于 2012-01-03T20:52:49.313 回答