请问用access 怎样做备份和恢复?(100分)

  • 主题发起人 主题发起人 jackyy
  • 开始时间 开始时间
J

jackyy

Unregistered / Unconfirmed
GUEST, unregistred user!
请问对于access 的数据库怎样实现数据的备份和恢复?
 
你直接备份文件不就可以了?!
 
用delphi 怎样实现.access 不能像sql server 那样用啊.
 
关闭所有表、查询等,断开与数据库的连接,将文件名复制成另一个就可以了。
在idglobal单元有一个copyfileto函数可以实现文件复制,在复制之前先用fileexists函数
检查一下目标文件,若存在,用deletefile函数删除。
 
你直接备份文件
 
如果你用表的备份,好像有些复杂,所以我建议你直接备份文件。
 
可以,具体一点吗?怎么直接备份文件啊.我真的很菜.谢谢了.
 
把你的數據文件拷貝到另一個目錄下不就ok了﹗﹗Access數據應該都是這樣備份的吧﹗﹗
 
用压缩数据 库来实现数据库备份
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;
 
当然了,也可以在程序里面控制。就是考一下文件呀。
 
对access数据库维护
{***************************************************************
*
* Unit Name: unAccessTools
* Purpose : Provide tools to compact and repair Access database.
*
****************************************************************}

unit unAccessTools;

interface

uses Sysutils,ComObj,Dialogs;

function DaoActive(var DaoObject:OleVariant):Boolean;
function DaoCompactDB(const FileName:string):Boolean;
function DaoRepairDB(const FileName:string):Boolean;

implementation

function DaoActive(var DaoObject:OleVariant):Boolean;
begin
Result:=False;
try
DaoObject:=GetActiveOleObject('DAO.DBEngine.36');
Result:=True;
except
try
DaoObject:=CreateOleObject('DAO.DBEngine.36');
Result:=True;
except
DaoObject:=Null;
end;
end;
end;

//压缩Access数据库
function DaoCompactDB(const FileName:string):Boolean;
var
db:OleVariant;
TempFile:string;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
TempFile:=ExtractFilePath(FileName)+'msaTemp.mdb';
db.CompactDatabase(FileName,TempFile);
DeleteFile(FileName);
RenameFile(TempFile,FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;

//修复Access数据库
function DaoRepairDB(const FileName:string):Boolean;
var
db:OleVariant;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
db.RepairDatabase(FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;

end.
 
把文件名.*的拷出来行不行,最笨笨的方法....

愚见
 
你们的ACCESS能不能使用字段存储图像?
我用OLE怎么试都不行啊,真是奇怪!
 
用 copy File 函数不就行了吗!
 
backfile绝动好用。
 
你直接备份文件,不就行了.
 
复制表结构
 
我觉得一般情况下只有直接把数据文件备份
 
其实用copy函数就很好了
copy(目标,原文件,false)
 
直接拷贝!比较简单
 
后退
顶部