//开始备份
with adoquery1 do
begin
close;
sql.Clear;
sql.Add(''Backup database library to disk=:p1 with init'');
parameters.ParamByName(''p1'').Value:=self.SaveDialog1.FileName;
try
Execsql;
ShowMessage(''备份成功!!'');
except
ShowMessage(''备份失败!!'');
exit;
end;
end; //End of 备份
下面来说一下还原,还原与备份不一样,备份不需要关闭数据库,但还原就要先关闭数据库才行.第一次写的代码如下:
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(''use master alter database library set offline WITH ROLLBACK IMMEDIATE '');
SQL.Add(''restore database library from disk=:p1 with REPLACE'');
SQL.Add(''alter database library set online with rollback immediate'');
parameters.ParamByName(''p1'').Value := self.Edit1.Text;
try
ExecSQL;
ShowMessage(''还原成功!!'');
except
Showmessage(''还原失败!!'');
exit;
end;
end;
运行,还原成功!!但是數據庫會變爲脫機狀態,導致其他用戶不能連接。解決的辦法有两种:
一:用存储过程