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

📄 dr_main.pas

📁 亚惠快餐管理信息系统 包括亚惠快餐管理的各项功能
💻 PAS
📖 第 1 页 / 共 3 页
字号:

procedure TDR_DfmMain.Button4Click(Sender: TObject);
var
  DR_DfmBackupDestination: TDR_DfmBackupDestination;
  i: integer;
begin
  if DestinationListBox.Items.Count <> 0 then
    Exit;
  DR_DfmBackupDestination := TDR_DfmBackupDestination.Create(Self,
    DestinationListBox);
  DR_DfmBackupDestination.ShowModal;
  if DR_DfmBackupDestination.AddDeviceIdentify = False then
    Exit;
  DR_DfmBackupDestination.Free;
  DBGrid1.DataSource := DR_DfmDataModule1.BackupDeviceContentDataSource;
  with DR_DfmDataModule1.BackupDeviceContentADOQuery do
  begin
    Close;
    Sql.Clear;
    Sql.Add('RESTORE HEADERONLY FROM ' + DestinationListBox.Items[0]);
    try
      open;
    except
      ShowMessage('error');
      Exit;
    end;
    FieldByName('BackupDescription').Visible := False;
    FieldByName('ExpirationDate').Visible := False;
    FieldByName('Compressed').Visible := False;
    FieldByName('Position').Visible := False;
    FieldByName('DeviceType').Visible := False;
    FieldByName('UserName').Visible := False;
    FieldByName('DatabaseVersion').Visible := False;
    FieldByName('DatabaseCreationDate').Visible := False;
    FieldByName('FirstLsn').Visible := False;
    FieldByName('LastLsn').Visible := False;
    FieldByName('CheckpointLsn').Visible := False;
    //FieldByName('DatabaseBackupLsn').Visible := False;
    FieldByName('BackupStartDate').Visible := False;
    FieldByName('SortOrder').Visible := False;
    FieldByName('CodePage').Visible := False;
    FieldByName('UnicodeLocaleID').Visible := False;
    FieldByName('UnicodeComparisonStyle').Visible := False;
    FieldByName('CompatibilityLevel').Visible := False;
    FieldByName('SoftwareVendorID').Visible := False;
    FieldByName('SoftwareVersionMajor').Visible := False;
    FieldByName('SoftwareVersionMinor').Visible := False;
    FieldByName('SoftwareVersionBuild').Visible := False;
    FieldByName('DifferentialBaseLsn').Visible := False;
    FieldByName('Flags').Visible := False;
    FieldByName('BindingId').Visible := False;
    FieldByName('RecoveryForkId').Visible := False;
    FieldByName('Collation').Visible := False;
    FieldByName('MachineName').Visible := False;
    FieldByName('BackupName').DisplayLabel := '备份后库名';
    FieldByName('BackupType').DisplayLabel := '备份类型';
    FieldByName('ServerName').DisplayLabel := '服务器名称';
    FieldByName('DatabaseName').DisplayLabel := '数据库名称';
    FieldByName('BackupSize').DisplayLabel := '备份容量';
    FieldByName('BackupFinishDate').DisplayLabel := '备份完成时间';
  end;
  for i := 0 to DBGrid1.FieldCount - 1 do
    DBGrid1.Fields[i].DisplayWidth := 1;
end;

//删除备份设备==================================================================

procedure TDR_DfmMain.Button5Click(Sender: TObject);
var
  i: integer;
begin
  if DestinationListBox.Items.Count = 0 then
    Exit;
  ReplaceDatabaseCheck;
  for i := 0 to DestinationListBox.Items.Count do
    DestinationListBox.Items.Delete(i);
  DR_DfmDataModule1.BackupDeviceContentADOQuery.Close;
end;

//历史状态下被恢复数据库变动事件==================================================

procedure TDR_DfmMain.RestoreDatabaseNameComboBoxChange(Sender: TObject);
var
  i: integer;
begin
  ReplaceDatabaseCheck;
  AfterRestorDatabaseNameComboBox.Text := RestoreDatabaseNameComboBox.Text;
  FullBackupTimeComboBox.Items.Clear;
  with DR_DfmDataModule1.FullBackupTimeADOQuery do
  begin
    Close;
    Sql.Clear;
    Sql.Add('Select backup_start_date From BackupSet Where Type=''D'' and database_name=''' + RestoreDatabaseNameComboBox.Text + '''');
    try
      Open;
    except
      ShowMessage('error');
      Exit;
    end;
    Last;
    while not Bof do
    begin
      FullBackupTimeComboBox.Items.Add(FieldByName('backup_start_date').AsString);
      Prior;
    end;
  end;
  FullBackupTimeComboBox.ItemIndex := 0;
  with DR_DfmDataModule1.BackupHistoryADOQuery do
  begin
    Close;
    Sql.Clear;
    if FullBackupTimeComboBox.Items.IndexOf(FullBackupTimeComboBox.Text) = 0
      then
      Sql.Add('Select * From BackupSet Where backup_start_date>=''' +
        FullBackupTimeComboBox.Text + ''' and database_name=''' +
        RestoreDatabaseNameComboBox.Text + '''')
    else
      Sql.Add('Select * From BackupSet Where backup_start_date>=''' +
        FullBackupTimeComboBox.Text + ''' and backup_start_date<''' +
        FullBackupTimeComboBox.Items[FullBackupTimeComboBox.Items.IndexOf(FullBackupTimeComboBox.Text) - 1] + ''' and database_name=''' + RestoreDatabaseNameComboBox.Text +
        '''');

    try
      Open;
    except
      ShowMessage('error');
      Exit;
    end;
    FieldByName('backup_set_id').Visible := False;
    FieldByName('backup_set_uuid').Visible := False;
    FieldByName('media_set_id').Visible := False;
    FieldByName('first_family_number').Visible := False;
    FieldByName('first_media_number').Visible := False;
    FieldByName('last_family_number').Visible := False;
    FieldByName('last_media_number').Visible := False;
    FieldByName('catalog_family_number').Visible := False;
    FieldByName('catalog_media_number').Visible := False;
    FieldByName('position').Visible := False;
    FieldByName('expiration_date').Visible := False;
    FieldByName('software_vendor_id').Visible := False;
    FieldByName('description').Visible := False;
    FieldByName('user_name').Visible := False;
    FieldByName('software_major_version').Visible := False;
    FieldByName('software_minor_version').Visible := False;
    FieldByName('software_build_version').Visible := False;
    FieldByName('time_zone').Visible := False;
    FieldByName('mtf_minor_version').Visible := False;
    FieldByName('First_Lsn').Visible := False;
    FieldByName('Last_Lsn').Visible := False;
    FieldByName('Checkpoint_Lsn').Visible := False;
    FieldByName('Database_Backup_Lsn').Visible := False;
    FieldByName('database_creation_date').Visible := False;
    FieldByName('backup_start_date').Visible := False;
    FieldByName('sort_order').Visible := False;
    FieldByName('code_page').Visible := False;
    FieldByName('compatibility_level').Visible := False;
    FieldByName('database_version').Visible := False;
    FieldByName('machine_name').Visible := False;
    FieldByName('name').DisplayLabel := '备份后库名';
    FieldByName('backup_finish_date').DisplayLabel := '备份完成时间';
    FieldByName('type').DisplayLabel := '备份类型';
    FieldByName('backup_size').DisplayLabel := '备份容量';
    FieldByName('database_name').DisplayLabel := '数据库名称';
    FieldByName('server_name').DisplayLabel := '服务器名称';
  end;
  for i := 0 to BackupHistoryDBGrid.FieldCount - 1 do
    BackupHistoryDBGrid.Fields[i].DisplayWidth := 1;
  BackupHistoryDBGrid.DataSource := DR_DfmDataModule1.BackupHistoryDataSource;
  ReplaceDatabaseCheckBox.Checked := False;
  SourceDatabaseMemo.Lines.Clear;
  DestinationDatabaseMemo.Lines.Clear;
  DestinationDatabaseMemo.ReadOnly := True;
end;

//历史状态下被恢复数据库整库备份时间变动事件====================================

procedure TDR_DfmMain.FullBackupTimeComboBoxChange(Sender: TObject);
var
  i: integer;
begin
  ReplaceDatabaseCheck;
  with DR_DfmDataModule1.BackupHistoryADOQuery do
  begin
    Close;
    Sql.Clear;
    if FullBackupTimeComboBox.Items.IndexOf(FullBackupTimeComboBox.Text) = 0
      then
      Sql.Add('Select * From BackupSet Where backup_start_date>=''' +
        FullBackupTimeComboBox.Text + ''' and database_name=''' +
        RestoreDatabaseNameComboBox.Text + '''')
    else
      Sql.Add('Select * From BackupSet Where backup_start_date>=''' +
        FullBackupTimeComboBox.Text + ''' and backup_start_date<''' +
        FullBackupTimeComboBox.Items[FullBackupTimeComboBox.Items.IndexOf(FullBackupTimeComboBox.Text) - 1] + ''' and database_name=''' + RestoreDatabaseNameComboBox.Text +
        '''');
    try
      Open;
    except
      ShowMessage('error');
      Exit;
    end;
    FieldByName('backup_set_id').Visible := False;
    FieldByName('backup_set_uuid').Visible := False;
    FieldByName('media_set_id').Visible := False;
    FieldByName('first_family_number').Visible := False;
    FieldByName('first_media_number').Visible := False;
    FieldByName('last_family_number').Visible := False;
    FieldByName('last_media_number').Visible := False;
    FieldByName('catalog_family_number').Visible := False;
    FieldByName('catalog_media_number').Visible := False;
    FieldByName('position').Visible := False;
    FieldByName('expiration_date').Visible := False;
    FieldByName('software_vendor_id').Visible := False;
    FieldByName('description').Visible := False;
    FieldByName('user_name').Visible := False;
    FieldByName('software_major_version').Visible := False;
    FieldByName('software_minor_version').Visible := False;
    FieldByName('software_build_version').Visible := False;
    FieldByName('time_zone').Visible := False;
    FieldByName('mtf_minor_version').Visible := False;
    FieldByName('First_Lsn').Visible := False;
    FieldByName('Last_Lsn').Visible := False;
    FieldByName('Checkpoint_Lsn').Visible := False;
    FieldByName('Database_Backup_Lsn').Visible := False;
    FieldByName('database_creation_date').Visible := False;
    FieldByName('backup_start_date').Visible := False;
    FieldByName('sort_order').Visible := False;
    FieldByName('code_page').Visible := False;
    FieldByName('compatibility_level').Visible := False;
    FieldByName('database_version').Visible := False;
    FieldByName('machine_name').Visible := False;
    FieldByName('name').DisplayLabel := '备份后库名';
    FieldByName('backup_finish_date').DisplayLabel := '备份完成时间';
    FieldByName('type').DisplayLabel := '备份类型';
    FieldByName('backup_size').DisplayLabel := '备份容量';
    FieldByName('database_name').DisplayLabel := '数据库名称';
    FieldByName('server_name').DisplayLabel := '服务器名称';
  end;
  for i := 0 to BackupHistoryDBGrid.FieldCount - 1 do
    BackupHistoryDBGrid.Fields[i].DisplayWidth := 1;
  BackupHistoryDBGrid.DataSource := DR_DfmDataModule1.BackupHistoryDataSource;
  ReplaceDatabaseCheckBox.Checked := False;
  SourceDatabaseMemo.Lines.Clear;
  DestinationDatabaseMemo.Lines.Clear;
  DestinationDatabaseMemo.ReadOnly := True;
end;

//覆盖已有数据库变动选项==================================================================

procedure TDR_DfmMain.ReplaceDatabaseCheckBoxClick(Sender: TObject);
var
  TemporaryHistoryDeviceName: string;
  TemporaryHistoryBackupSetNumber: string;
  DestinationDatabaseFileName: string;
  SourceDatabaseFileName: string;
begin
  //覆盖======================================
  if ReplaceDatabaseCheckBox.Checked = True then
  begin
    DestinationDatabaseMemo.ReadOnly := False;
    //历史状态恢复============================
    if RestoreModeRadioGroup.ItemIndex = 0 then
    begin
      DR_DfmDataModule1.SourceDestinationDatabaseADOQuery.Close;
      DR_DfmDataModule1.SourceDestinationDatabaseADOQuery.Sql.Clear;
      if DR_DfmDataModule1.BackupHistoryADOQuery.RecordCount = 0 then
      begin
        ReplaceDatabaseCheckBox.Checked := False;
        Exit;
      end;
      DR_DfmDataModule1.SourceDestinationDatabaseADOQuery.Sql.Add('Select * From msdb..BackupMediaFamily Inner Join msdb..BackupSet On msdb..BackupMediaFamily.Media_Set_Id=msdb..BackupSet.Media_Set_Id Where msdb..BackupSet.Backup_Set_Id=' +
        DR_DfmDataModule1.BackupHistoryADOQuery.FieldByName('Backup_Set_Id').AsString);
      try
        DR_DfmDataModule1.SourceDestinationDatabaseADOQuery.Open;

⌨️ 快捷键说明

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