我正在尝试从Delphi DBIV数据库读取数据,每次访问数据库时,它都会创建一个Paradox.lck和一个Pdoxusrs.lck文件。我只使用一个TQuery对象来执行此操作(没有别的)。我可以在没有创建这些锁文件的情况下访问Delphi DBIV数据库吗?
答案 0 :(得分:0)
为什么不想要锁定文件?没有真正研究它,我认为这些锁文件有一个真正的目的
我使用BDE已经有一段时间了,但你不能在SELECT查询中使用某些关键字来表示你不想要任何锁定吗?
例如,在MS SQL中,您可以使用以下语法:
SELECT * WITH(NOLOCK)
FROM SomeTable
答案 1 :(得分:0)
如果您的应用程序正在创建PARADOX.LCK和PDOXUSRS.LCK文件,它还会在某处创建或访问PDOXUSRS.NET文件。
BDE使用单个通用PDOXUSRS.NET文件,以及每个共享目录中的PARADOX.LCK和PDOXUSRS.LCK文件,以协调引擎的分布式实例之间的共享访问。
您必须查明您的应用程序是否与任何其他应用程序共享表。如果共享数据,则必须允许BDE创建并使用这些锁定文件。
如果您确定自己是数据的SOLE用户,则可以取消锁定文件的创建。但是 - 除非锁定文件是阻止你做有用事情的唯一因素,否则很难阻止它们的创建。
注册表项告诉BDE在哪里找到它的配置文件。配置文件编辑器随BDE一起提供;寻找BDEADMIN.EXE或BDECFG32.EXE。配置编辑器使用相同的注册表项来确定要编辑的文件。
当您是数据的唯一用户时,为避免创建锁定文件:
打开配置编辑器。
转到配置|司机|原生的PARADOX或驱动程序| PARADOX,并注意NET DIR条目。
将NET DIR值设置为空白。
转到配置|系统| INIT或System,并将LOCAL SHARE设置为False。
保存您的修改。
按照您在步骤2中记下的路径删除在那里找到的PDOXUSRS.NET。
删除数据目录中的所有剩余PARADOX.LCK或PDOXUSRS.LCK文件。
警告:如果您不了解其目的,请使用锁定文件,这是阻止您的应用的好方法。
-Al。
答案 2 :(得分:0)
感谢您的回复。我会调查你的两个建议。
致A Breveleri:
是的,我知道你的意思,我不愿意将它们关闭,但使用数据库的其他应用程序远比我的重要。理想情况下,我希望发生以下情况:我的应用程序开始获取数据,如果其他应用程序想要使用数据库,那么我的应用程序将停止。
目前正好相反。
炖。