如何用delphi打开foxbase正在共享打开的数据库(*.dbf)?(100分)

  • 主题发起人 主题发起人 zqqxh
  • 开始时间 开始时间
Z

zqqxh

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用delphi打开foxbase正在共享打开的数据库(*.dbf)?
即:
一个老程序用foxbase共享方式打开了一个数据文件(已设置了set excl off),
这时如果用delphi打开这个数据文件,就提示被其他用户占用,不能打开.
而如果先用delphi打开,再用foxbase打开却没问题.
有什么方法可以解决这个问题?
 
用BDE打开试试看,看是否能够打开。或者建立该数据库的ODBC连接,通过ODBC打开试试看
 
to Johnny_du:
这些方法在foxbase没有打开数据库前,delphi是可以打开的,
但如果运行了foxbase用共享方式打开数据库后,delphi就没法打开了,提示如下:
[Microsoft][ODBC dBase Driver]无法锁定数据表....;正被机器XXX上的用户XXX使用.
 
如果用BDE打开,则提示:
Table is busy.
 
看来是“老”程序对数据库进行的封锁级别太高了(多半是S封锁),因为其对DBF库加的是排他锁,而非共享锁所以其他程序无法再次打开该数据库...这个是原来程序的问题,很难通过修改现在新程序的代码或封锁策略加以解决...
 
可以通过修改旧的程序适应吗?
旧的程序用的是DOS下的foxbase 2.1 或foxpro for dos 2.5
它们共享设置只能是set excl off呀
 
vfp 系列 好像跟 delphi + ODBC 有冲突,纵然已经设置了共享打开也是会提示:“数据库已经被 xx 打开”的错误。
幸好我还不需要原软件跟新软件同时打开DBF文件,只是把原软件的数据一次性的转成新软件的数据而已。
 
有高人解决过这样的问题吗?
看来真的没法了?
 
后退
顶部