ACCESS的锁定问题 ( 积分: 300 )

  • 主题发起人 主题发起人 listhano
  • 开始时间 开始时间
L

listhano

Unregistered / Unconfirmed
GUEST, unregistred user!
ACCESS数据库
当应用程序调用数据库的时候,即产生一个锁定(打开数据库所在的文件夹有2个文件);怎样设定数据库才能不产生锁定数据库,就是说可以在运行的时候删除数据库,从而做到用另外的一个数据库文件覆盖原数据库的,可以吗?
谢谢!
 
方案不可行,建议方法:
利用锁定,防止别人访问,同时用“另外的一个数据库”的内容来做修改
 
这个得学习一下
 
我是想用TSaveDialog来做。
1、先删除数据库文件OldDat.mdb;用DeleteFile函数
2、然后,再用CopyFile拷贝数据库文件;也就是在SaveDialog.Files.Text(暂且叫NewDAT.mdb)中调用的文件;
3、现在问题来了!原数据库文件(OldDat.mdb)已经锁定了,无法删除。也就无法拷贝SaveDialog.Files.Text(NewDAT.mdb)中的文件到指
定的文件夹了(也就是ExtractFilePath(Paramstr(0))指定的路径)!
4、这个问题怎样解决?
看看是这样的。
------------
begin
if SaveDialog.Execute then
begin
DeleteFile(trim(ExtractFilePath(Paramstr(0))+'OldDat.mdb'));
CopyFile(PChar(Trim(SaveDialog.Files.Text)),PChar(trim(ExtractFilePath(Paramstr(0)))+'OldDat.mdb'),true);
end;
end;
------------
如果上述的方案无法完成,也只能像下面的方法做了!
(那可就非常麻烦了!呜呜呜呜...):
1、把OldDAT.mdb中的所有表打开,同时把NewDat.mdb中的所有数据表也打开;
2、然后,把OldDAT.mdb中的所有表的数据逐字段、逐条记录放到NewDat.mdb数据库中的各个对应的表中。
 
哪用这么麻烦啊,先把数据库当乘文件复制了,在断开数据库连接,直接删除就是啦。
 
其他的窗体一直占用数据库连接。我在OnShow中用了连接。
我想把数据(因为备份数据,在有连接的时候也可以做到)拷贝回来:因为在OnShow事件中占用了连接。因此,无法删除数据库。
在不改变连接状态的情况下,怎么做才能删除数据(我不想改变OnShow中的连接)。能行吗?
 
學習學習.
 
问题已经解决!就是单独做一个可执行文件,在做安装程序的时候,另外放在“程序组”里;用户可以单独导入数据库文件。
这个办法还行。
要结题了!放分。
 
多人接受答案了。
 
后退
顶部