备份:
procedure TBackupFrm.BitBtn2Click(Sender: TObject);
begin
if Edit1.Text= then
begin
Showmessage(无选择要保存的文件名);
exit;
end;
try
try
dmData.adoQryTmp.Active:= false;
dmData.adoQryTmp.SQL.Clear;
dmData.adoQryTmp.SQL.Add(BACKUP DATABASE [dzyl] TO DISK = +edit1.text+ WITH INIT);
dmData.adoQryTmp.ExecSQL;
finally
begin
dmData.adoQryTmp.Active:= false;
Showmessage(数据库备份成功!);
end;
end;
except
on e:exception do
begin
ShowMessage(数据库备份失败!);
end;
end;
end;
---------------------------
恢复
procedure TBackupFrm.BitBtn4Click(Sender: TObject);
begin
if Edit2.Text = then
begin
showmessage(未选择要恢复的数据库文件!);
exit;
end;
with dmData do
begin
try
adocmmd.CommandText:=use master;
adocmmd.Execute;
adocmmd.CommandText:=alter database dzyl set offline with rollback immediate;
adocmmd.Execute;
adocmmd.CommandText:=restore database dzyl from disk= +edit2.Text+ with
recovery ;
adocmmd.Execute;
adocmmd.CommandText:= alter database dzyl set online with rollback immediate;
adocmmd.Execute;
showmessage(数据库恢复成功!);
application.Terminate;
except
on e:exception do
begin
showmessage(数据库恢复失败!+e.Message);
end;
end;
end;
其中dmData.adoQryTmp连接的是系统MASTER数据库,备份还原之前应该关闭要备份还原的AdoConn数据库
连接AdoConn.Connected:=False;
------------------------------------------------
另一方法:
备份如下:
try
backupString := BACKUP DATABASE [Paper] TO DISK = N+edit1.Text+ WITH
INIT , NOUNLOAD , NAME = NPaper 备份, NOSKIP , STATS = 10, NOFORMAT;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(backupString);
ADOQuery1.Prepared;
adoquery1.ExecSQL;
application.MessageBox(备份成功。,提示,0);
except
application.MessageBox(备份出错!请重新备份数据。,出错,0);
end;
---------------------------
还原如下:
if opendialog1.Execute then
begin
try
adoquery1.Close();
adoquery1.SQL.Clear;
adoquery1.SQL.Add(use master);
adoquery1.Prepared;
adoquery1.ExecSQL;
restorestring := RESTORE DATABASE [Paper] FROM DISK =
N+opendialog1.FileName+ WITH FILE = 1, NOUNLOAD , STATS = 10, REPLACE,RECOVERY;
self.ADOCommand1.CommandText := restoreString;
adocommand1.Execute;
application.MessageBox(还原数据成功,提示,0);
adoquery1.Close();
adoquery1.SQL.Clear;
adoquery1.SQL.Add(use paper);
adoquery1.Prepared;
adoquery1.ExecSQL;
except
application.MessageBox(还原数据出错!请重新还原,并停止一切的数据操作!
procedure TBackupFrm.BitBtn2Click(Sender: TObject);
begin
if Edit1.Text= then
begin
Showmessage(无选择要保存的文件名);
exit;
end;
try
try
dmData.adoQryTmp.Active:= false;
dmData.adoQryTmp.SQL.Clear;
dmData.adoQryTmp.SQL.Add(BACKUP DATABASE [dzyl] TO DISK = +edit1.text+ WITH INIT);
dmData.adoQryTmp.ExecSQL;
finally
begin
dmData.adoQryTmp.Active:= false;
Showmessage(数据库备份成功!);
end;
end;
except
on e:exception do
begin
ShowMessage(数据库备份失败!);
end;
end;
end;
---------------------------
恢复
procedure TBackupFrm.BitBtn4Click(Sender: TObject);
begin
if Edit2.Text = then
begin
showmessage(未选择要恢复的数据库文件!);
exit;
end;
with dmData do
begin
try
adocmmd.CommandText:=use master;
adocmmd.Execute;
adocmmd.CommandText:=alter database dzyl set offline with rollback immediate;
adocmmd.Execute;
adocmmd.CommandText:=restore database dzyl from disk= +edit2.Text+ with
recovery ;
adocmmd.Execute;
adocmmd.CommandText:= alter database dzyl set online with rollback immediate;
adocmmd.Execute;
showmessage(数据库恢复成功!);
application.Terminate;
except
on e:exception do
begin
showmessage(数据库恢复失败!+e.Message);
end;
end;
end;
其中dmData.adoQryTmp连接的是系统MASTER数据库,备份还原之前应该关闭要备份还原的AdoConn数据库
连接AdoConn.Connected:=False;
------------------------------------------------
另一方法:
备份如下:
try
backupString := BACKUP DATABASE [Paper] TO DISK = N+edit1.Text+ WITH
INIT , NOUNLOAD , NAME = NPaper 备份, NOSKIP , STATS = 10, NOFORMAT;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(backupString);
ADOQuery1.Prepared;
adoquery1.ExecSQL;
application.MessageBox(备份成功。,提示,0);
except
application.MessageBox(备份出错!请重新备份数据。,出错,0);
end;
---------------------------
还原如下:
if opendialog1.Execute then
begin
try
adoquery1.Close();
adoquery1.SQL.Clear;
adoquery1.SQL.Add(use master);
adoquery1.Prepared;
adoquery1.ExecSQL;
restorestring := RESTORE DATABASE [Paper] FROM DISK =
N+opendialog1.FileName+ WITH FILE = 1, NOUNLOAD , STATS = 10, REPLACE,RECOVERY;
self.ADOCommand1.CommandText := restoreString;
adocommand1.Execute;
application.MessageBox(还原数据成功,提示,0);
adoquery1.Close();
adoquery1.SQL.Clear;
adoquery1.SQL.Add(use paper);
adoquery1.Prepared;
adoquery1.ExecSQL;
except
application.MessageBox(还原数据出错!请重新还原,并停止一切的数据操作!
浙公网安备 33010602011771号