关于access数据库的备分!(50分)

  • 主题发起人 主题发起人 atun
  • 开始时间 开始时间
A

atun

Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi写了个简单的数据库应用程序。现在想加入数据库备分的功能,请问各位高手该如何实现?
我用的数据库是access,我想用拷贝文件的方法(copyfileto),可是,在没有退出应用程序前,数据库是锁定的,可以这样实现吗?
各位大虾还有没有更好的方法?
小生在此谢过![^]
 
API函数 CopyFile 可以的吧。
我给你实验一下。
 
在拷贝数据库文件之前,关闭数据表和数据连接,数据库就会解锁。
 
不用独占的方式打开数据库是可以拷贝的,另外,关闭并释放所有的数据库连接后,应该可以啊
 
我是这样处理的:
1、先关闭ADOCONNECTION;
2、压缩ACCESS数据库文件;
3、用COPYFILE备份文件;
4、重新打开ADOCONNECTION。
 
使用Ado连接,正常打开数据库,然后复制文件,CopyFile没问题的。
我刚刚实验的。
 
为什么不这样呢?
1、CopyFile将复制Access文件到临时文件
2、压缩临时文件到指定文件
 
var
F:TShFileOpStruct;
begin
F.wnd:=Handle;
F.wFunc:=Fo_COPY; {操作方式}
F.pFrom:=mainfrm.apppath+'book/books.mdb';
F.pTo:=mainfrm.apppath+'book/books.mdb';
F.fFlags:=FOF_ALLOWUNDO OR FOF_RENAMEONCOLLISION; {操作选项}
if ShFileOperation(F)<>0 then
application.MessageBox('数据文件备份失败!','错误',16)
else
application.MessageBox('数据文件备份成功!','错误',16)

end;
 
先暂时关闭,再拷贝文件,再压缩!
 
同意荷塘新月的做法,但是要注意用access打开数据库不要用独占地方式
 
是啊,先把CONNET关了再拷贝文件啊
 
是呀,荷塘新月的方法不错,先压缩数据库文件,释放空间,
 
后退
顶部