⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitbackup.pas

📁 这是我做的一个大学院系成绩管理系统
💻 PAS
字号:
unit UnitBackup;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, ExtCtrls, StdCtrls, FileCtrl, ComCtrls, Buttons, ImgList, Mask, Gauges;

type
  TFrmBackup = class(TFrame)
    ImageBg: TImage;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Image3: TImage;
    Image2: TImage;
    GroupBox1: TGroupBox;
    Gauge1: TGauge;
    procedure Image2Click(Sender: TObject);
    procedure Image3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

uses UnitDBConnect;

{$R *.dfm}


procedure TFrmBackup.Image2Click(Sender: TObject);
var 
FileName:string; 
strsql:string;
i:integer;

begin 
if SaveDialog1.Execute then 
   begin
     FileName:=SaveDialog1.FileName;
     showmessage(FileName);
     try
      with  FMDBConnect do
      begin
        DBADOConnection.Connected:=false;//关闭DBScoreMS数据库
        ADOConnectionMaster.Open;
        ADOQueryBak.Connection:=FMDBConnect.ADOConnectionMaster;
        strsql:='backup database DBScoreMS to disk='''+FileName+'''';
        ADOQueryBak.Close;
        ADOQueryBak.SQL.Clear;
        ADOQueryBak.SQL.Add(strsql);
        for i:=Gauge1.MinValue to Gauge1.MaxValue do
           Gauge1.Progress := i;
        ADOQueryBak.ExecSQL;
        ADOConnectionMaster.Connected:=false;//关闭master的连接
        DBADOConnection.Connected:=true;
        SetQueryActive(self);
        ADOQueryBak.Connection:=FMDBConnect.DBADOConnection;
      end;
      if fileExists(FileName)then
         showmessage('已经将 DBScoreMS 备份为:'+FileName);
      except
       messageDlg('数据备份异常!',MTError,[mbok],0);
     end;
   end;
end;


procedure TFrmBackup.Image3Click(Sender: TObject);
var
 i:integer;
begin
if openDialog1.Execute then
 begin
   with FMDBConnect do
   begin
     try
      DBADOConnection.Connected:=false;//关闭DBScoreMS数据库
      ADOConnectionMaster.Open;
      ADOQueryBak.Connection:=ADOConnectionMaster;
      ADOQueryBak.Close;
      ADOQueryBak.SQL.Clear;
      ADOQueryBak.SQL.Add('ALTER DATABASE DBScoreMS SET OFFLINE WITH ROLLBACK IMMEDIATE');
      ADOQueryBak.ExecSQL;
      ADOQueryBak.Close;
      ADOQueryBak.SQL.Clear;
      ADOQueryBak.SQL.Add('restore database DBScoreMS From disk='''+openDialog1.FileName+''' ');
      for i:=Gauge1.MinValue to Gauge1.MaxValue do
          Gauge1.Progress := i;
      ADOQueryBak.ExecSQL;
      showmessage('顺利完成数据库还原!');
      finally
       ADOQueryBak.Close;
       ADOQueryBak.SQL.Clear;
       ADOQueryBak.SQL.Add('ALTER DATABASE DBScoreMS SET ONLINE WITH ROLLBACK IMMEDIATE');//DBScoreMS
       ADOQueryBak.ExecSQL;
       ADOConnectionMaster.Connected:=false;//关闭master的连接
       DBADOConnection.Connected:=true;
       ADOQueryBak.Connection:=DBADOConnection;
     end;
   end;
 end;
end;


end.

⌨️ 快捷键说明

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