下面是Sql Server的备份恢复。使用Sql语句。 // 备份。使用AdoConnection连接你的数据库,adoquery链这个AdoConnection。 procedure TForm1.Button1Click(Sender: TObject); begin AdoQuery1.SQL.Text := 'backup database testDFW to disk = ' + '''' + 'e:\backup.dat' + ''''; showmessage(AdoQuery1.SQL.Text); AdoQuery1.ExecSQL; end; //恢复。 AdoConnection不要连接你的数据库,可以连接一个其他数据库,如Master。 procedure TForm1.Button2Click(Sender: TObject); begin AdoQuery1.SQL.Text := 'restore database testDFW from disk =' + '''' + 'e:\backup.dat' + ''''; showmessage(AdoQuery1.SQL.Text); AdoQuery1.ExecSQL; end;
采用压缩备份的方法:unit unAccessTools;interfaceuses Sysutils,ComObj,Dialogs;function DaoActive(var DaoObject:OleVariant):Boolean; function DaoCompactDB(const FileName:string):Boolean; function DaoRepairDB(const FileName:string):Boolean;implementationfunction 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.
// 备份。使用AdoConnection连接你的数据库,adoquery链这个AdoConnection。
procedure TForm1.Button1Click(Sender: TObject);
begin
AdoQuery1.SQL.Text := 'backup database testDFW to disk = ' + '''' + 'e:\backup.dat' + '''';
showmessage(AdoQuery1.SQL.Text);
AdoQuery1.ExecSQL;
end;
//恢复。 AdoConnection不要连接你的数据库,可以连接一个其他数据库,如Master。
procedure TForm1.Button2Click(Sender: TObject);
begin
AdoQuery1.SQL.Text := 'restore database testDFW from disk =' + '''' + 'e:\backup.dat' + '''';
showmessage(AdoQuery1.SQL.Text);
AdoQuery1.ExecSQL;
end;
function DaoCompactDB(const FileName:string):Boolean;
function DaoRepairDB(const FileName:string):Boolean;implementationfunction 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.
===
要是使用D7的用户使用MS OfficeXP的,就不必使用cg1120(代码最优化-§新年祝福你,好运伴着你§) 的方法,那个太麻烦了
这个最简单,只对AccessXP有效,2000的不知道,97一定不行的
使用D7中Server页的AccessApp: TAccessApplication;
一句搞定:
AccessApp.CompactRepair('D:\Delphi Data\Test\test.mdb', 'D:\Delphi Data\Test\tmp.mdb', false);
继续......