Here is some stuff (below) I got in response to same question and it helped me
solve it.
The bottom line is to use setdirlock() from paradox to control where lockfiles
files are created. In first instance be a user that has read/write to the
directory you point lock files to and open datafiles - this will cause lock
files to be created.
Subsequent regular users (who don't have read/write to directory where lock
files are and (ofcourse) can't read/write to CD ROM where data files are) open
files for readonly...paradox detects that lockfiles already exists so doesn't
try creating them and because you open files for readonly there is not
requirement to write to lockfiles....
Hope this helps.
Andy Crutchlow
andy.crutch...@service.britgas.co.uk
Steve Green - Diamond software Group - Waldorf Maryland USA
CIS:71333.2...@compuserve.com - A member of Borland's TeamB
and Corel's CTech tech support staffs but I don't represent
Borland International or Corel in any official capacity.
There is, I believe, a TI on this subject at Borland's web-site, discussing
the problems of "Paradox tables on CD-ROM ..."
In order to access tables, Paradox needs to write/update/delete those two .lck
files. These files are part of the way the BDE controls concurrency. You can
neither
stop the files from being created nor control their location.
However, Paradox (the RDBMS) has a command to create those two lock files in a
directory that is to be read-only. Note: this means the directory is read-only
for
_all_ users; you cannot have a mix at the network access level. The command in
Paradox for Windows is setDirLock(). If you have PdoxWin, try using this
command
(as someone who has read/write access to the directory).
Otherwise, try running your Delphi app with read/write access so it can create
the
two .lck files. Then close the app. The .lck files should get deleted, but you
should be able to use salvage or some other undelete utility to recover those
lck
files. Then make the directory read-only and see if it works. (I haven't tried
it
this way, so I'm just guessing.)
There might be a better 'Delphi' way, but I'm not familiar enough with Delphi
to
know. You could try the Delphi newsgroup under forums.borland.com.