打开Paradox数据库;'PDOXUSRS.NET'的解决方法?

3
我正在编写一个应用程序,需要打开由第三方保存的已存在的BDE数据库。
在这个应用程序中,我当前有一个TDatabaseDriverNameSTANDARD),并正确地将path设置在Params中。现在,我可以将Connected设置为true而无需出现错误消息。
还有一个TTable,其DatabaseName设置为TDatabase的值,并且TableName设置为位于文件夹中的.db文件(名称是自动填充的,我只需选择它)。
现在的问题是:如果我将Active设置为true,则会出现关于缺少访问C:\PDOXUSRS.NET权限的错误消息。我知道我可以使用BDEADMIN设置另一个路径,但我需要在我的应用程序中解决此问题 - 我不能期望每个客户都进行此更改。此外,我有一个测试机器,其中运行着第三方应用程序 - 它可以访问数据库而不出现任何错误,而我的应用程序却抛出上述错误。这让我怀疑可能有一种解决方法。
是否有这样的解决方法?我只需要对数据库进行读取访问。

2
你可能尝试以编程方式更改它。http://edn.embarcadero.com/article/23231 - bummi
1
如果一切都失败了,您可以尝试跳过BDE,并通过dbExpress ODBC驱动程序访问Paradox表,例如这个: https://sourceforge.net/projects/open-dbexpress/ - Jan Doggen
你正在使用Windows 7吗?你可能无法访问C:的根目录。尝试将net文件目录更改为用户名称下的目录。您可以使用一个叫做BDEAdmin的程序来完成这个操作。 - No'am Newman
最佳选择是将数据库访问层从BDE更改为内置的Microsoft ODBC驱动程序,以用于Paradox表。BDE需要单独的驱动程序交付和安装。您可能会收到更多关于此过程的客户问题,而不是关于更改pdoxusrs.net目录路径的问题。 - ThinkJet
如何在飞行中使用ODBC连接到Paradox数据库并指定自定义网络目录:http://www.carlprothman.net/Default.aspx?tabid=90#ODBCDriverForParadox 或 http://docs.30c.org/conn/paradox.html#microsoft-paradox-driver-odbc - ThinkJet
1个回答

5
我通过bummi的链接解决了这个问题,非常感谢。
引用:
如何在程序中以编程方式更改NET DIR以使其持久化
[...]
您还应记住,如果您有更改其自己的NET DIR位置的程序在运行时使用DbiSetProp函数或TSession组件的NetFileDir属性,则这将覆盖配置文件中的NET DIR值。
该链接指向了代码中更改NET DIR的可能性。
Session.NetFileDir := MyCustomTempDir;

在这样做之后,Table1.active := true就可以正常工作了,并且数据会显示在连接的TDBGrid中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接