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

📄 udbadmin.pas

📁 此为一个用delphi语言编写的人事管理系统
💻 PAS
字号:
unit uDBadmin;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Buttons, StdCtrls,ComObj, ComCtrls;

type
  TfrmDBadmin = class(TForm)
    Label1: TLabel;
    btnCancel: TSpeedButton;
    Panel1: TPanel;
    btnCompact: TBitBtn;
    btnBackup: TBitBtn;
    btnRestore: TBitBtn;
    procedure btnCompactClick(Sender: TObject);
    procedure btnBackupClick(Sender: TObject);
    procedure btnRestoreClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
  private
    { Private declarations }
//    procedure CompactAccess(dbName: string; JetId: string = '4.0');   //压缩
  public
    { Public declarations }
  end;

var
  frmDBadmin: TfrmDBadmin;

implementation

uses uData;

{$R *.dfm}

procedure CompactAccess(dbName: string; JetId: string = '4.0');   //压缩
var
  AVariant: Variant;
begin
  if FileExists(dbName + '.tmp') then DeleteFile(DbName + '.tmp');
  AVariant := CreateOleObject('JRO.JetEngine');
  AVariant.CompactDataBase('Provider=Microsoft.Jet.OLEDB.' + JetId + ';Data Source=' + dbName ,
  'Provider=Microsoft.Jet.OLEDB.' + JetId + ';Data Source=' + dbName + '.tmp');
  DeleteFile(DbName);
  ReNameFile(dbName + '.tmp', DbName);
end;

//数据库压缩
procedure TfrmDBadmin.btnCompactClick(Sender: TObject);
var
  dbname: string;
begin
  if dmPer.acper.Connected = true then dmper.acper.Connected := false;
  Sleep(500);
  dbname := ExtractFilePath(Application.ExeName) + 'permis.mdb';
  CompactAccess(dbname);
  MessageBox(handle, '数据库压缩成功!', '提示', mb_IconInformation + mb_Ok);
  if dmper.acper.Connected = false then dmper.acper.Connected := true;
end;

//数据库备份
procedure TfrmDBadmin.btnBackupClick(Sender: TObject);
var
  dbname: string;
begin
  if dmPer.acper.Connected = true then dmper.acper.Connected := false;
  dbname := ExtractFilePath(Application.ExeName)+ 'permis.bak';
  if FileExists(dbname) then DeleteFile(dbname);
  CopyFile(Pchar('permis.mdb'), Pchar(dbname), true);
  MessageBox(handle, '数据库备份成功!', '提示', mb_IconInformation + mb_Ok);
  if dmper.acper.Connected = false then dmper.acper.Connected := true;
end;

//数据库还原
procedure TfrmDBadmin.btnRestoreClick(Sender: TObject);
var
  dbname, dbbname: string;
begin
  if MessageBox(self.Handle, '确认要还原数据么? ', '提示', mb_IconQuestion + mb_YesNo) = idYes then
  begin
    if dmPer.acper.Connected = true then dmper.acper.Connected := false;
    dbname := ExtractFilePath(Application.ExeName)+ 'permis.mdb';
    dbbname := ExtractFilePath(Application.ExeName)+ 'permis.bak';
    if not FileExists(dbbname) then
      MessageBox(self.Handle, '没有备份数据,不能还原', '提示', mb_IconInformation + mb_Ok)
    else
    begin
      CopyFile(Pchar(dbbname), Pchar(dbname), true);
      MessageBox(handle, '数据库还原成功!', '提示', mb_IconInformation + mb_Ok);
    end;
    if dmPer.acper.Connected = false then dmper.acper.Connected := true;
  end;
end;

procedure TfrmDBadmin.btnCancelClick(Sender: TObject);
begin
  close;
end;

end.

⌨️ 快捷键说明

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