先备份了数据库,然后恢复,虽然显示恢复成功,但是查看数据以后,并没有恢复.又用sql server企业管理器恢复,然后数据库确实恢复了.所以应该不是备份的问题,麻烦大虾看看数据为什么不能恢复.
代码如下:
procedure TBeiFen.Button2Click(Sender: TObject);//恢复
var
dir:string;
id:Dword;
pd:Thandle;
begin
try
if OpenDialog1.Execute then
begin
dir:=OpenDialog1.FileName;
With ADOQuery1 do
begin
Close;
SqL.Clear;
SQL.Add('use master restore database CHildhood from disk='+''''+dir+'''');
ExecSQL;
Close;
SqL.Clear;
SQL.Add('use CHildhood');
ExecSQL ;
end;
pd:=createthread(nil,0,@pro,nil,0,id);
progressbar1.Position:=progressbar1.Max;
showmessage('恢复成功');
progressbar1.Position:=progressbar1.Min;
end;
except
showmessage('恢复失败');
progressbar1.Position:=progressbar1.Min;
end;
end;
还有一问题,为什么有的人delphi代码中关键字是蓝色的?我这全是黑的呢?
代码如下:
procedure TBeiFen.Button2Click(Sender: TObject);//恢复
var
dir:string;
id:Dword;
pd:Thandle;
begin
try
if OpenDialog1.Execute then
begin
dir:=OpenDialog1.FileName;
With ADOQuery1 do
begin
Close;
SqL.Clear;
SQL.Add('use master restore database CHildhood from disk='+''''+dir+'''');
ExecSQL;
Close;
SqL.Clear;
SQL.Add('use CHildhood');
ExecSQL ;
end;
pd:=createthread(nil,0,@pro,nil,0,id);
progressbar1.Position:=progressbar1.Max;
showmessage('恢复成功');
progressbar1.Position:=progressbar1.Min;
end;
except
showmessage('恢复失败');
progressbar1.Position:=progressbar1.Min;
end;
end;
还有一问题,为什么有的人delphi代码中关键字是蓝色的?我这全是黑的呢?
这个可以自己设置,在tools ->环境选项中设置
tool -- editor options -- color
With ADOQuery1 do
begin
Close;
SqL.Clear;
SQL.Add('use master restore database CHildhood from disk='+''''+dir+'''');
ExecSQL;
Close;
SqL.Clear;
SQL.Add('use CHildhood');//这里做什么的?
ExecSQL ;
end;你要的代码颜色,是指delphi 里还是指论坛
childhood是我数据库的名字
var adoquery1:Tadoquery;
begin
adoquery1:=Tadoquery.create(self);
if opendialog1.Execute then
begin
adoquery1.Connection:=dm1.ADOConnection1;
adoquery1.SQL.Add('use master');
adoquery1.SQL.Add(' ALTER DATABASE 数据库名 SET OFFLINE WITH ROLLBACK IMMEDIATE');
adoquery1.SQL.Add(' restore database 数据库名 from disk= '''+opendialog1.FileName+ '''');
adoquery1.SQL.Add( ' ALTER DATABASE 数据库名 SET ONLINE WITH ROLLBACK IMMEDIATE');
adoquery1.SQL.Add(' use 数据库名 '); adoquery1.ExecSQL;
application.MessageBox( '恢复成功 ', '提示 ',MB_OK);
end;
end;
var adoquery1:Tadoquery;
begin
adoquery1:=Tadoquery.create(self);
if opendialog1.Execute then
begin
adoquery1.Connection:=dm1.ADOConnection1; //这句的dm1是datamodal1吗?我都是用adoconnection,没有这个?
adoquery1.SQL.Add('use master');
adoquery1.SQL.Add(' ALTER DATABASE 数据库名 SET OFFLINE WITH ROLLBACK IMMEDIATE');
adoquery1.SQL.Add(' restore database 数据库名 from disk= '''+opendialog1.FileName+ '''');
adoquery1.SQL.Add( ' ALTER DATABASE 数据库名 SET ONLINE WITH ROLLBACK IMMEDIATE');
adoquery1.SQL.Add(' use 数据库名 '); adoquery1.ExecSQL;
application.MessageBox( '恢复成功 ', '提示 ',MB_OK);
end;
end;