我正在寻找如何使用C#访问Paradox数据库。
问题是,在工作站上都是准备好运行的程序,它使用目标数据库。在它运行之前,oleDbConnection.Open()
会抛出异常。
如果我不是从同一台计算机上运行.NET程序,而是在另一台Windows工作站中使用共享文件夹,那么一切正常。原始程序具有读/写访问权限,我可以根据需要进行只读访问。当然,在第二台计算机上,NET DIR指向共享文件夹中的正确目录。
如果我使用共享文件夹并在同一台计算机上同时运行程序(我的和原始程序)并配置BDE以使用从C#到Paradox数据库的共享文件夹连接,则无法打开。
我尝试使用.NET管理员帐户权限运行程序,但它没有帮助。
所以我采用另一个程序Paradox数据库编辑器,并在原始程序运行时尝试编辑其中一个表。在用户权限上,它给出了有关访问网络文件夹的错误。但是当以管理员权限运行时,我可以成功读取数据库,以及只有Paradox数据库编辑器仅在用户帐户权限上运行时。
答案 0 :(得分:0)
听起来您可能遇到Paradox锁定机制的问题。当Paradox(在你的情况下是BDE)访问一个表时,它通过在表目录中的特殊锁文件中创建并创建一个条目来在表上放置一种或那种类型的锁。这些由特定位置的单个Paradox.net文件控制。
我认为您说当前的应用程序正在使用BDE而您可能正在使用其他内容。我不确定你能做到这一点,但如果可以的话,你必须使用相同的锁定文件和Paradox.net文件。此外,您必须使用相同的paradox版本逻辑。在几个Paradox版本中,这种锁定机制有一些变化。尝试单独运行每个程序,看看它创建的文件和位置。它们应该是相同的。
我认为私人目录并不重要。实际上,2个用户不能拥有相同的私人目录。