我正在寻找如何使用c#访问Paradox数据库。
问题是,在工作站上已经有了正在运行的程序,这些程序使用的是目标数据库。在运行之前,oleDbConnection.Open()
抛出异常。
如果我不是在同一台计算机上运行. net程序,而是在另一台Windows工作站和使用共享文件夹都可以正常工作。原来的程序有读/写访问,我有只读访问,因为我需要。当然,在第二台计算机上。NET DIR会指向共享文件夹中的正确目录。
如果我使用共享文件夹,并在同一台计算机上运行两个程序(我的和原始的),并配置BDE使用共享文件夹,从c#到Paradox数据库的连接无法打开。
我试图运行程序从。net管理员帐户的权利,但它没有帮助。
所以我用另一个程序,Paradox数据库编辑器,并尝试在原始程序运行时编辑其中一个表。在用户权限上,它给我访问网络文件夹的错误。但是当以管理员权限运行时,我可以成功读取数据库,以及当只有Paradox数据库编辑器仅以用户帐户权限运行时。
听起来您可能对Paradox锁定机制有问题。当Paradox(在您的例子中是BDE)访问表时,它通过在表目录中的一个特殊锁文件中创建和创建一个条目,在表上放置一种或另一种类型的锁。它们由位于特定位置的一个Paradox.net文件控制。
我想你是说当前应用程序正在使用BDE,而你可能正在使用其他东西。我不确定您是否可以做到这一点,但如果可以的话,您必须使用相同的锁定文件和Paradox.net文件。此外,您还必须使用相同的悖论版本逻辑。在几个Paradox版本中,这种锁定机制发生了一些变化。试着分别运行每个程序,看看它在哪里创建了什么文件。它们应该是相同的。
我不认为私人目录那么重要。实际上,2个用户不能有相同的私有目录