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

📄 unit22.pas

📁 学生宿舍管理系统,用于宿舍的信息管理,简单容易用.
💻 PAS
字号:
unit Unit22;

interface

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

type
  TForm22 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    BitBtn1: TBitBtn;
    StaticText1: TStaticText;
    BitBtn2: TBitBtn;
    StaticText2: TStaticText;
    StaticText3: TStaticText;
    BitBtn3: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    StaticText4: TStaticText;
    StaticText5: TStaticText;
    FileListBox1: TFileListBox;
    BitBtn8: TBitBtn;
    BitBtn9: TBitBtn;
    BitBtn10: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure CompactAccess(dbName :string;JetId:string='4.0');
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure BitBtn9Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure BitBtn8Click(Sender: TObject);
    procedure BitBtn10Click(Sender: TObject);
    
  private
    { Private declarations }
  public
    { Public declarations }
    pathstr :string;
  end;

var
  Form22: TForm22;

implementation
uses comobj;
{$R *.dfm}
                        //压缩数据库
procedure TForm22.BitBtn1Click(Sender: TObject);
var
dbname :string;
begin
  StaticText1.Caption :='正在压缩数据库...';
if DataModule2.ADOConnection1.Connected =true then
     DataModule2.ADOConnection1.Connected :=false;
  Sleep(500);
  dbname :=ExtractFilePath(Application.ExeName )+'house.mdb';    //取得当前数据库所在路径
  CompactAccess(dbname);                                     //压缩

if DataModule2.ADOConnection1.Connected =false then
  DataModule2.ADOConnection1.Connected :=true;
  StaticText1.Caption :='数据库压缩成功!';
end;

                                 //压缩数据库函数
procedure TForm22.CompactAccess(dbName :string;JetId:string='4.0');
var
AVariant :Variant;
begin
  if FileExists(dbName+'.tmp') then DeleteFile(DbName+'.tmp');   //是否存在相同的.tmp的临时文件,有则删了
 AVariant := CreateOleObject('JRO.JetEngine');
  AVariant.CompactDataBase('Provider=Microsoft.Jet.OLEDB.'+JetId+';Jet OLEDB:Database Password=hjp;Data Source='+
  dbName,
    'Provider=Microsoft.Jet.OLEDB.'+JetId+';Data Source='+dbName+'.tmp');
    DeleteFile(DbName);
    ReNameFile(dbName+'.tmp',DbName);        //把文件名改回来

end;

                            //调出路径选择窗口
procedure TForm22.BitBtn2Click(Sender: TObject);
begin
Application.CreateForm(TForm23,Form23);
Form23.Label1.Caption :='请选择备份路径:';
Form23.ShowModal;
Form23.Free ;
end;
                              //备份数据库
procedure TForm22.BitBtn3Click(Sender: TObject);
var
dbname :string;
newpath :string;

begin
   BitBtn5.Enabled :=false;
  StaticText3.Caption :='正在备份数据库...';        //先压缩数据库再备份
if DataModule2.ADOConnection1.Connected =true then
     DataModule2.ADOConnection1.Connected :=false;
  Sleep(500);
  dbname :=ExtractFilePath(Application.ExeName )+'house.mdb';
  StaticText3.Caption :='正在压缩数据库...';
  CompactAccess(dbname);
 // MessageBox(handle,'数据库压缩成功!','提示',MB_Ok+MB_ICONINFORMATION);

  if  DataModule2.ADOConnection1.Connected=true then
   DataModule2.ADOConnection1.Connected :=false;
    dbname:=pathstr+'\'+DateToStr(date)+'.bak';
    newpath :=ExtractFilePath(Application.ExeName )+'house.mdb';
   if FileExists(dbname) then DeleteFile(dbname);

   CopyFile(Pchar(newpath),Pchar(dbname),true);        //备份:自制过去
  // MessageBox(handle,'数据库备份成功!','提示',MB_OK+MB_ICONINFORMATION);
   if  DataModule2.ADOConnection1.Connected=false then
     DataModule2.ADOConnection1.Connected :=true;
   StaticText3.Caption :='备份成功!';
   BitBtn5.Enabled :=true;


end;


procedure TForm22.BitBtn5Click(Sender: TObject);
begin
Close;
end;
                          //还原数据库
procedure TForm22.BitBtn9Click(Sender: TObject);
var
dbname,dbbname :string;
begin
  Bitbtn9.Enabled :=false;
  BitBtn8.Enabled :=false;
if MessageBox(self.handle,'确认要还原数据么?','提示',MB_YESNO+MB_ICONINFORMATION)=IDYES then
  begin
      StaticText5.Caption :='正在还原数据库...';
    if  DataModule2.ADOConnection1.Connected =true then
      DataModule2.ADOConnection1.Connected :=false;

    dbname:=ExtractFilePath(Application.ExeName )+'house.mdb';
    dbbname:=FileListBox1.FileName ;
    if not FileExists(dbbname) then
        MessageBox(self.Handle ,'没有备份的数据库,不能还原!','提示',MB_OK+MB_ICONINFORMATION)
    else
      begin
        CopyFile(Pchar(dbbname),Pchar(dbname),true);       //还原:将原备份的数据库自制过来
        //MessageBox(handle,'数据库还原成功!','提示',MB_OK+MB_ICONINFORMATION);
      end;
      if DataModule2.ADOConnection1.Connected =false then
      DataModule2.ADOConnection1.Connected :=true;
       StaticText5.Caption :='还原成功!';
       
       BitBtn8.Enabled :=true;
   end;
end;

procedure TForm22.BitBtn6Click(Sender: TObject);
begin
Application.CreateForm(TForm23,Form23);
Form23.Label1.Caption :='请选择还原路径:';
Form23.ShowModal;
Form23.Free ;
end;

procedure TForm22.BitBtn8Click(Sender: TObject);
begin
 close;
end;

procedure TForm22.BitBtn10Click(Sender: TObject);
begin
close;
end;

end.

⌨️ 快捷键说明

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