我用的是adoconnection连接数据库,我的代码如下,不过我的代码在还原成功后,会显示说我数据库中的某个字段无效。
procedure TForm1.SpeedButton14Click(Sender: TObject);
begin
if edit17.Text='' then
begin
MessageDlg('请选还原文件!',mtInformation,[mbok], 0);
end
else
begin
Label46.Caption:='请选择要还原的数据:'+'正在还原数据......';
if Label46.Caption='请选择要还原的数据:'+'正在还原数据......' then
begin
Screen.Cursor:=crHourGlass; // Data.ADOCon.Connected:=false;
ADO_bak.Close;
ADO_bak.SQL.Clear ;
ADO_bak.SQL.Add('Use Master');
ADO_bak.SQL.Add('ALTER DATABASE Credit SET OFFLINE WITH ROLLBACK IMMEDIATE');
ADO_bak.SQL.Add('RESTORE DATABASE Credit') ;
ADO_bak.SQL.Add('FROM disk='''+edit17.Text+'''');
ADO_bak.SQL.Add('ALTER DATABASE Credit SET ONLINE WITH ROLLBACK IMMEDIATE');
try
ADO_bak.ExecSQL;
MessageDlg('还原成功,请重启系统!',mtInformation,[mbok], 0);
Label46.Caption:='请选择要还原的数据:';
Screen.Cursor:=crDefault;
form1.close;
except
MessageDlg('还原失败!',mtInformation,[mbok], 0);
Label46.Caption:='请选择要还原的数据:';
Screen.Cursor:=crDefault;
end;
end;
end;
end;
procedure TForm1.SpeedButton14Click(Sender: TObject);
begin
if edit17.Text='' then
begin
MessageDlg('请选还原文件!',mtInformation,[mbok], 0);
end
else
begin
Label46.Caption:='请选择要还原的数据:'+'正在还原数据......';
if Label46.Caption='请选择要还原的数据:'+'正在还原数据......' then
begin
Screen.Cursor:=crHourGlass; // Data.ADOCon.Connected:=false;
ADO_bak.Close;
ADO_bak.SQL.Clear ;
ADO_bak.SQL.Add('Use Master');
ADO_bak.SQL.Add('ALTER DATABASE Credit SET OFFLINE WITH ROLLBACK IMMEDIATE');
ADO_bak.SQL.Add('RESTORE DATABASE Credit') ;
ADO_bak.SQL.Add('FROM disk='''+edit17.Text+'''');
ADO_bak.SQL.Add('ALTER DATABASE Credit SET ONLINE WITH ROLLBACK IMMEDIATE');
try
ADO_bak.ExecSQL;
MessageDlg('还原成功,请重启系统!',mtInformation,[mbok], 0);
Label46.Caption:='请选择要还原的数据:';
Screen.Cursor:=crDefault;
form1.close;
except
MessageDlg('还原失败!',mtInformation,[mbok], 0);
Label46.Caption:='请选择要还原的数据:';
Screen.Cursor:=crDefault;
end;
end;
end;
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货