推荐一个好用的数据库(sql server)还原备份的控件好吗? ( 积分: 2 )

H

huanxia

Unregistered / Unconfirmed
GUEST, unregistred user!
推荐一个好用的数据库(sql server)还原备份的控件好吗?
 
推荐一个好用的数据库(sql server)还原备份的控件好吗?
 
不用控件就可以解决,代码如下:
//备份
procedure TForm1.Button1Click(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('use master');
adoquery1.SQL.Add('EXEC sp_addumpdevice @devtype=:disk,@logicalname=:logicalname,@physicalname=:path');
adoquery1.Parameters.ParamByName('disk').Value:='disk';
adoquery1.Parameters.ParamByName('logicalname').Value:='逻辑名';
adoquery1.Parameters.ParamByName('path').Value:='路径';
adoquery1.SQL.Add('BACKUP DATABASE wind TO disk=:logicalname1 with init');
adoquery1.Parameters.ParamByName('logicalname1').Value:='备份路径';
adoquery1.ExecSQL
messagedlg('完成备份!',mtinformation,[mbOK],0);
end;
//还原
procedure TForm1.Button2Click(Sender: TObject);
begin
try
adoquery1.Close;
adoquery1.SQL.Clear;
ADOConnection1.Connected:=False;//关闭数据库
adoquery1.Connection:=ADOConnection2;//转移连接到数据库master
adoquery1.sql.add('ALTER DATABASE wind SET offLINE WITH ROLLBACK IMMEDIATE');//切断连接
ADOquery1.sql.add('RESTORE DATABASE wind FROM disk=:logicalname2 with recovery,replace');
adoquery1.Parameters.ParamByName('logicalname2').Value:='备份文件名';
//恢复数据库
ADOquery1.ExecSQL;
finally
ADOquery1.sql.add('ALTER DATABASE wind SET ONLINE WITH ROLLBACK IMMEDIATE');//重新连接数据库
ADOquery1.ExecSQL;
ADOConnection2.Connected:=False;//关闭master数据库
end;
ADOConnection1.Connected:=True;//打开数据库
adoquery1.Connection:=ADOConnection1;//恢复连接到数据库
messagedlg('完成恢复!',mtinformation,[mbOK],0);
end;
 
接受答案了.
 
顶部