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

📄 datahfunit.~pas

📁 宁夏中药管理系统,在其它的基础上改的,将他人没有完成的功能补上
💻 ~PAS
字号:
unit datahfunit;

interface

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

type
  Tdatahfform = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    ProgressBar1: TProgressBar;
    OpenDialog1: TOpenDialog;
    q: TADOQuery;
    Image1: TImage;
    Button1: TButton;
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  datahfform: Tdatahfform;

implementation
 uses mainfrm;
{$R *.dfm}

function GetTempPathFileName():string;
//取得临时文件名
var
  SPath,SFile:array [0..254] of char;
begin
  GetTempPath(254,SPath);
  GetTempFileName(SPath,'~SM',0,SFile);
  result:=SFile;
  DeleteFile(result);
end;


//function CompactDatabase(AFileName,APassWord:string):boolean;
//压缩与修复数据库,覆盖源文件
function CompactDatabase(AFileName:string):boolean;
var
  STempFileName:string;
  vJE:OleVariant;
  dir:string;
begin
  dir:=extractfiledir(application.ExeName);
  STempFileName:=dir+'\database\中草药库2.mdb';

  try
    //vJE:=CreateOleObject('JRO.JetEngine');
    //result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
    result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
    DeleteFile(STempFileName);
  except
    result:=false;
  end;
end;


procedure Tdatahfform.BitBtn2Click(Sender: TObject);
begin
  close;
end;

procedure Tdatahfform.BitBtn1Click(Sender: TObject);
var path:string;
    m:integer;
begin
  mainfrm.Form1.ADOConnection1.Close;
  //UpdateBatch
  messagebox(self.Handle,'请在恢复前将所有与该数据库连接的程序关闭,以免恢复失败','提示信息',mb_iconinformation);
  self.Caption:='正在恢复数据...';
  //opendialog1.Filter:='(备份文件)|*.bak';
  opendialog1.Filter:='(Assess)|*.mdb';
  opendialog1.InitialDir:=extractfiledir(application.ExeName)+'\data\';
  if opendialog1.Execute then
  path:=opendialog1.FileName;
  if path<>'' then
    if messagebox(self.Handle,'确定要恢复数据库吗?这样会覆盖现在的数据。','提示信息',mb_yesno+mb_iconquestion)=idyes then
    begin
      try
        with q do
        begin
          close;
          SQL.Clear;
          SQL.add('use pubs  restore database 中草药库 from disk='''+ Trim(path)+'''');
          ExecSQL;
        end;
        for m:=0 to 100 do
          progressbar1.Position:=m;
        messagebox(self.Handle,'数据恢复成功','提示信息',mb_iconinformation);
      except
        messagebox(self.Handle,'数据恢复失败','提示信息',mb_iconinformation);
      end; //对应try
    end;// end;
  with q do
  begin
    close;
    sql.Clear ;
    sql.Add('use zfgjj');
    execsql;
    close;
    sql.Clear ;
    sql.Add('select * from 用户表');
    execsql;
    open;
  end;
  self.Caption:='恢复数据';
  close;
end;

procedure Tdatahfform.FormCreate(Sender: TObject);
begin
 q.ConnectionString:=connstr;

end;

procedure Tdatahfform.Button1Click(Sender: TObject);
var
  dir:string;
begin
  dir:=extractfiledir(application.ExeName);
  CompactDatabase(dir+'database\中草药库.mdb');
end;

end.

⌨️ 快捷键说明

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