📄 datahfunit.~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 + -