从只读媒体访问Paradox数据表会有问题,因为BDE要在一个称为PDOXUSRS.LCK锁定控制文件上写数据。
此文件必须在与数据表文件相同的文件夹上创建。为解决问题你必须新建此文件的特别版本。可以直接调用BDE API。当BDE发现此文件时,就会认为所有的数据表是只读的,那就不会尝试建立一个锁定文件。
32位版本的BDE会自动检测只读媒体。而16位版本的不会。但这文件不会在32位BDE中出现问题。
新建一个项目并拖下Tdatabase对象,把''Databasename''属性设成文件夹,把''Connected''属性设成true。在按钮的onClick事件放入以下代码:
Check(DbiAcqPersistTabelLock(Database1.Handle, ''PARADOX.DRO'',#PARADOX#));
(你在Delphi 1中需要DbiProcs, DbiTypes 和DbiErrs,在Delphi 2,3,4中需要BDE。Pdoxusrs.lck和Paradox.lck两个文件将被建立。把Pdoxusrs.lck复制到paradox数据表文件,最后将进入CD中去。)