Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 您可以访问Delphi DBIV数据库而不创建锁文件吗?_Database_Delphi - Fatal编程技术网

Database 您可以访问Delphi DBIV数据库而不创建锁文件吗?

Database 您可以访问Delphi DBIV数据库而不创建锁文件吗?,database,delphi,Database,Delphi,我试图从Delphi DBIV数据库读取数据,每次访问数据库时,它都会创建一个Paradox.lck和一个pdoxussrs.lck文件。我只使用TQuery对象来执行此操作,而不使用其他对象。我可以访问Delphi DBIV数据库而不创建这些锁定文件吗?为什么不需要这些锁定文件?在没有深入研究的情况下,我假设这些锁文件有真正的用途 我已经有一段时间没有使用BDE了,但是您不能在SELECT查询中使用一些关键字来表示您不想要任何锁定吗 例如,在MS SQL中,可以使用以下语法: SELECT *

我试图从Delphi DBIV数据库读取数据,每次访问数据库时,它都会创建一个Paradox.lck和一个pdoxussrs.lck文件。我只使用TQuery对象来执行此操作,而不使用其他对象。我可以访问Delphi DBIV数据库而不创建这些锁定文件吗?

为什么不需要这些锁定文件?在没有深入研究的情况下,我假设这些锁文件有真正的用途

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

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

SELECT * WITH(NOLOCK)
FROM SomeTable

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

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

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

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

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

要避免在您是数据的唯一用户时创建锁定文件,请执行以下操作:

打开配置编辑器

转到配置|驱动程序|本机|悖论或驱动程序|悖论,并记下NET DIR条目

将“净目录”值设置为空

转到配置|系统|初始化或系统,并将本地共享设置为False

保存您的编辑

按照您在步骤2中记录的路径,删除在那里找到的PDOXUSRS.NET

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

警告:当你们不明白锁文件的用途时,玩弄它们是一个很好的方法来构建你们的应用程序


-Al.

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

对我来说,布雷维列里:

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

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

目前情况正好相反


斯图。

我相信有一种方法可以在不使用锁文件的情况下读取数据库,就像其他软件访问数据库时,它似乎不会创建锁文件一样。我不想要锁文件,因为其他软件更重要&不能访问。自从我访问DBIV或Paradox表已经很多年了,但是如果您在其中插入一个TDatabase组件,并将TQuery的别名指定给它,而不是将BDE别名输入TQuery本身,那么您就有一个只读选项。这是否会阻止创建锁文件?