restore.pas

来自「大二时做的」· PAS 代码 · 共 68 行

PAS
68
字号
unit restore;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls, Buttons;

type
  TF_re = class(TForm)
    Label2: TLabel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    Btn: TBitBtn;
    BitBtn2: TBitBtn;
    ADOQuery2: TADOQuery;
    OpenDialog1: TOpenDialog;
    procedure BitBtn2Click(Sender: TObject);
    procedure BtnClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_re: TF_re;

implementation

uses main;

{$R *.dfm}

procedure TF_re.BitBtn2Click(Sender: TObject);
begin
    F_re.Close;
end;

procedure TF_re.BtnClick(Sender: TObject);
begin
    if OpenDialog1.Execute then
     edit1.Text:=OpenDialog1.FileName ;
end;

procedure TF_re.BitBtn1Click(Sender: TObject);
begin
    adoquery2.SQL.Clear ;
    adoquery2.SQL.Add('use master alter database [college] set offline WITH ROLLBACK IMMEDIATE');
    adoquery2.SQL.Add('RESTORE DATABASE [college] FROM  ');
    adoquery2.SQL.Add('DISK = '''+edit1.Text +''' WITH REPLACE');
    adoquery2.SQL.Add('alter database [college] set online with rollback immediate');
    adoquery2.SQL.Add('use [college]');

     mainform.adoconnection1.begintrans;
     try
      adoquery2.ExecSQL ;
      mainform.adoconnection1.committrans;
      showmessage('还原成功!');
     except
     mainform.adoconnection1.rollbacktrans;
     showmessage('还原失败,请重试!');
     end;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?