备份问题(50分)

  • 主题发起人 主题发起人 拿破一世
  • 开始时间 开始时间

拿破一世

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大侠,采用ado技术,如何将一个access数据库备
代码:
[:(]份,谢谢!to zgclm@sohu.com
 
用压缩数据 库来实现数据库备份
function daocompactdb(srcfile,password:string):boolean;
//compactdatabase
var
dstfile:widestring;
db:_DBEngine;
dtbs:dao97.database;
begin
dstfile:=extractfilepath(application.ExeName)+'tempfile.mdb';
try
try
db:=coDBEngine.Create;
dtbs:=db.OpenDatabase(srcfile,true,false,';pwd='+password);
dtbs.NewPassword(password,'');
dtbs.Close;
db.CompactDatabase(srcfile,dstfile,emptyparam,emptyparam,'');
if not copyfile(pchar(dstfile),pchar(srcfile),false) then
begin
deletefile(dstfile);
result:=false;
exit;
end;
finally
dtbs:=db.OpenDatabase(srcfile,true,false,';pwd=');
dtbs.NewPassword('',password);
dtbs.Close;
end;
result:=true;
except // wrap up
result:=false;
end;
// try/except
deletefile(dstfile);
end;

 
先用这个函数压缩数据库:
function bCompactDatabase: Boolean;
var
dao:OLEVariant;
OldName,tmpName:string;
begin
OldName := LocalExtractFileDir + '/DB/JXC.mdb';
tmpName := LocalExtractFileDir + '/DB/Temp.mdb';
try
dao:=CreateOleObject('DAO.DBEngine.36');
dao.CompactDatabase (OldName, tmpName, '', 0, ';pwd=' + gDataBasePassWord);
DeleteFile(Pchar(OldName));
RenameFile(tmpName,OldName);
Result := true;
except
Result := false;
end;
end;

然后把这数据库文件复制到另一个地方备份。
 
谢谢大侠们啦~!
 
后退
顶部