var
path:string;
N:integer;
begin
dataForm.ADOConnection1.Close;
dataForm.ADOConnection1.Connected:=false;
messagebox(self.Handle,'请在恢复前将所有与该数据库连接的程序关闭,以免恢复失败','提示信息',mb_iconinformation);
//opendialog1.Filter:='(*.bak)|(*.bak)';
opendialog1.InitialDir:=extractfiledir(application.ExeName)+'\databack\';
if opendialog1.Execute then
path:=opendialog1.FileName;
if path<>'' then
if messagebox(self.Handle,'确定要恢复数据库吗?这样会覆盖现在的数据。','提示信息',mb_yesno+mb_iconquestion)=idyes then
begin
with dataForm.ADOBack do
begin
TRY
try
close;
sql.Clear;
sql.add('use Master Restore DataBase lwgl from disk='+''''+ Trim(path)+'''');
ExecSQL();
for N:=0 to 100 do
progressbar1.Position:=N;
messagebox(self.Handle,'数据恢复成功','提示信息',mb_iconinformation);
Progressbar1.Position:=0;
except
messagebox(self.Handle,'数据恢复失败','提示信息',mb_iconinformation);
end;
Finally
with dataForm.ADOBack do
begin
Close;
SQL.Clear;
SQL.Add('USE lwgl');
ExecSQL;
end;
end;
end;
end;
end;
path:string;
N:integer;
begin
dataForm.ADOConnection1.Close;
dataForm.ADOConnection1.Connected:=false;
messagebox(self.Handle,'请在恢复前将所有与该数据库连接的程序关闭,以免恢复失败','提示信息',mb_iconinformation);
//opendialog1.Filter:='(*.bak)|(*.bak)';
opendialog1.InitialDir:=extractfiledir(application.ExeName)+'\databack\';
if opendialog1.Execute then
path:=opendialog1.FileName;
if path<>'' then
if messagebox(self.Handle,'确定要恢复数据库吗?这样会覆盖现在的数据。','提示信息',mb_yesno+mb_iconquestion)=idyes then
begin
with dataForm.ADOBack do
begin
TRY
try
close;
sql.Clear;
sql.add('use Master Restore DataBase lwgl from disk='+''''+ Trim(path)+'''');
ExecSQL();
for N:=0 to 100 do
progressbar1.Position:=N;
messagebox(self.Handle,'数据恢复成功','提示信息',mb_iconinformation);
Progressbar1.Position:=0;
except
messagebox(self.Handle,'数据恢复失败','提示信息',mb_iconinformation);
end;
Finally
with dataForm.ADOBack do
begin
Close;
SQL.Clear;
SQL.Add('USE lwgl');
ExecSQL;
end;
end;
end;
end;
end;
然后再重新连接你的数据库/。
BACKUP DATABASE DYJDGlSys TO eee
还原RESTORE DATABASE DYJDGlSys FROM eee
begin
if opendialog1.Execute then
begin
adoquery1.SQL.Text:='use master;'+
'ALTER DATABASE mydatabase SET OFFLINE WITH ROLLBACK IMMEDIATE;'+
'restore database mydatabase from disk='''+opendialog1.FileName+''';'+
'ALTER DATABASE mydatabase SET ONLINE WITH ROLLBACK IMMEDIATE;use mydatabase';
adoquery1.ExecSQL;
application.MessageBox('恢复成功','提示',MB_OK);
end;
end;