0

我试图从 Delphi DBIV 数据库中读取数据,每次我访问数据库时,它都会创建一个 Paradox.lck 和一个 Pdoxusrs.lck 文件。我只使用 TQuery 对象来执行此操作(仅此而已)。我可以在不创建这些锁定文件的情况下访问 Delphi DBIV 数据库吗?

4

3 回答 3

0

你为什么不想要锁定文件?没有真正研究它,我认为这些锁定文件有一个真正的目的

自从我使用 BDE 以来已经有一段时间了,但是您不能在 SELECT 查询中使用一些关键字来指示您不想要任何锁定吗?

例如,在 MS SQL 中,您可以使用以下语法:

SELECT * WITH(NOLOCK)
FROM SomeTable
于 2008-09-19T12:43:01.417 回答
0

如果您的应用程序正在创建 PARADOX.LCK 和 PDOXUSRS.LCK 文件,那么它也在某处创建或访问 PDOXUSRS.NET 文件。

BDE 使用单个通用 PDOXUSRS.NET 文件以及每个共享目录中的 PARADOX.LCK 和 PDOXUSRS.LCK 文件来协调引擎的分布式实例之间的共享访问。

您必须确定您的应用程序是否与任何其他应用程序共享表。如果数据是共享的,您必须允许 BDE 创建和使用这些锁定文件。

如果您确定您是数据的唯一用户,则可以消除锁定文件的创建。但是——除非锁定文件是唯一阻止你做一些有用的事情的东西,否则很少值得阻止它们的创建。

注册表项告诉 BDE 在哪里可以找到其配置文件。BDE 附带一个配置文件编辑器;查找 BDEADMIN.EXE 或 BDECFG32.EXE。配置编辑器使用相同的注册表项来确定要编辑的文件。

为避免在您是数据的唯一用户时创建锁定文件:

  1. 打开配置编辑器。

  2. 转到配置 | 驱动程序 | 本地人 | 悖论,或驱动程序 | PARADOX,并注意 NET DIR 条目。

  3. 将 NET DIR 值设置为空白。

  4. 转到配置 | 系统 | INIT 或 System,并将 LOCAL SHARE 设置为 False。

  5. 保存您的编辑。

  6. 按照您在步骤 2 中记下的路径并删除在那里找到的 PDOXUSRS.NET。

  7. 删除数据目录中所有剩余的 PARADOX.LCK 或 PDOXUSRS.LCK 文件。

警告:当您不了解锁定文件的目的时,玩弄锁定文件是使您的应用程序变砖的好方法。

-阿尔。

于 2008-09-19T19:18:08.470 回答
0

感谢您的回复。我会研究你的两个建议。

致 AI Breveleri:

是的,我知道你在说什么,我不愿意关闭它们,但是使用数据库的其他应用程序比我的重要得多。理想情况下,我希望发生以下情况:

我的应用程序开始获取数据,如果其他应用程序想要使用数据库,那么我的应用程序将停止。

目前正在发生完全相反的情况。

炖。

于 2008-09-20T14:23:37.717 回答