try with ADOQuery1 do begin Close; Sql.Clear; sql.text:=Format('BACKUP DATABASE bfwlnew TO DISK=''%s'' WITH INIT',[SaveDialog1.FileName]);//将数据库备份到用户自选的目录去。 execsql; end; except on exception do if ADOConnection1.InTransaction then ADOConnection1.RollbackTrans; end; showmessage('备份成功'); //将用户自选的数据库还原 try with ADOQuery1 do begin Close; Sql.Clear; sql.add('RESTORE FILELISTONLY '); ss:=Format('FROM DISK=''%s''',[edit1.text]); Sql.Add(ss); Sql.Add('RESTORE DATABASE databasename'); ss:=Format('FROM DISK=''%s''',[openDialog1.FileName]); sql.add(ss); Sql.Add('WITH MOVE ''databasename_Data'' TO ''d:\mssql7\data\testdb.mdf'', '); Sql.Add('MOVE ''databasename_Log'' TO ''d:\mssql7\data\testdb.ldf'''); execsql; close; except on exception do if ADOConnection1.InTransaction then ADOConnection1.RollbackTrans; end
with ADOQuery1 do
begin
Close;
Sql.Clear;
sql.text:=Format('BACKUP DATABASE bfwlnew TO DISK=''%s'' WITH INIT',[SaveDialog1.FileName]);//将数据库备份到用户自选的目录去。
execsql;
end;
except
on exception do
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
end;
showmessage('备份成功');
//将用户自选的数据库还原
try
with ADOQuery1 do
begin
Close;
Sql.Clear;
sql.add('RESTORE FILELISTONLY ');
ss:=Format('FROM DISK=''%s''',[edit1.text]);
Sql.Add(ss);
Sql.Add('RESTORE DATABASE databasename');
ss:=Format('FROM DISK=''%s''',[openDialog1.FileName]);
sql.add(ss);
Sql.Add('WITH MOVE ''databasename_Data'' TO ''d:\mssql7\data\testdb.mdf'', ');
Sql.Add('MOVE ''databasename_Log'' TO ''d:\mssql7\data\testdb.ldf''');
execsql;
close;
except
on exception do
if ADOConnection1.InTransaction then
ADOConnection1.RollbackTrans;
end