📄 repairdb.pas
字号:
unit repairdb;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, FileCtrl, Buttons, ExtCtrls, shellapi;
type
Trepair = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
BitBtn3: TBitBtn;
Panel4: TPanel;
BitBtn5: TBitBtn;
Label1: TLabel;
BitBtn1: TBitBtn;
BitBtn4: TBitBtn;
Label5: TLabel;
procedure FormShow(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
repair: Trepair;
implementation
uses ADO_access, MAIN, adodata, mylib;
{$R *.DFM}
{$I-}
procedure Trepair.FormShow(Sender: TObject);
begin
adodm.ADOConnection1.Connected := false;
end;
procedure Trepair.BitBtn3Click(Sender: TObject);
begin
//检查其他窗口是否已经关闭
with Mainfm do
begin
if MDIChildCount > 1 then
begin
showmessage('请将所有录入、查询窗口关闭!');
exit;
end;
end;
adodm.ADOConnection1.Connected := false;
// adodm.ADOConnection2.Connected := false;
//关闭所有查询和数据表
adodm.ADOQuery1.close;
adodm.ADOQuery2.close;
adodm.ADOQuery3.close;
adodm.ADOQuery4.close;
adodm.ADOQuery5.close;
adodm.ADOQuery6.close;
adodm.ADOQuery7.close;
adodm.ADOQuery8.close;
adodm.ADOQuery9.close;
adodm.ADOQuery10.close;
adodm.ADOQuery11.close;
adodm.ADOQuery12.close;
adodm.ADOQuery13.close;
adodm.ADOQuery14.close;
adodm.ADOQuery15.close;
adodm.ADOQuery16.close;
adodm.ADOQuery17.close;
adodm.ADOQuery18.close;
adodm.ADOQuery19.close;
adodm.ADOQuery20.close;
adodm.ADOQuery21.close;
adodm.ADOQuery22.close;
adodm.ADOQuery23.close;
adodm.ADOQuery24.close;
adodm.ADOQuery25.close;
adodm.ADOQuery26.close;
adodm.loadQuery.close;
adodm.ADOtable1.close;
adodm.ADOtable2.close;
label5.Caption := '正在修复压缩,请稍等!';
label5.Refresh;
//
if CompactRepairMDB('lklb.mdb', '', '', '2000') = false then
MessageDlg('修复过程出现错误!!', mtWarning, [mbOk], 0)
else MessageDlg('修复完毕!', mtInformation, [mbOk], 0);
label5.Caption := '';
end;
procedure Trepair.BitBtn4Click(Sender: TObject);
begin
close;
end;
procedure Trepair.BitBtn1Click(Sender: TObject);
var
sf, df: string;
F: TShFileOpStruct;
begin
//检查其他窗口是否已经关闭
with Mainfm do
begin
if MDIChildCount > 1 then
begin
showmessage('请将所有录入、查询窗口关闭!');
exit;
end;
end;
adodm.ADOConnection1.Connected := false;
label5.Caption := '正在备份,请稍等!';
label5.Refresh;
sf := 'lklb.mdb';
df := 'backup\lklb.mdb';
F.wnd := Handle;
F.wFunc := FO_Copy; {操作方式}
F.pFrom := pchar(sf + #0#0);
F.pTo := pchar(df + #0#0);
F.fFlags := FOF_CONFIRMMOUSE;
//F.fFlags:=FOF_ALLOWUNDO OR FOF_RENAMEONCOLLISION; {操作选项}
if ShFileOperation(F) <> 0 then
MessageDlg('备份失败!', mtInformation, [mbOk], 0)
else
MessageDlg('备份成功!', mtInformation, [mbOk], 0);
label5.Caption := '';
label5.Refresh;
end;
procedure Trepair.BitBtn5Click(Sender: TObject);
var
sf, df: string;
F: TShFileOpStruct;
begin
//检查其他窗口是否已经关闭
with Mainfm do
begin
if MDIChildCount > 1 then
begin
showmessage('请将所有录入、查询窗口关闭!');
exit;
end;
end;
adodm.ADOConnection1.Connected := false;
label5.Caption := '正在恢复数据,请稍等!';
label5.Refresh;
sf := 'backup\lklb.mdb';
df := 'lklb.mdb';
if not fileexists(sf) then begin
showmessage('备份数据库没找到!');
exit;
end;
F.wnd := Handle;
F.wFunc := FO_Copy; {操作方式}
F.pFrom := pchar(sf + #0#0);
F.pTo := pchar(df + #0#0);
F.fFlags := FOF_CONFIRMMOUSE;
//F.fFlags:=FOF_ALLOWUNDO OR FOF_RENAMEONCOLLISION; {操作选项}
if ShFileOperation(F) <> 0 then
MessageDlg('恢复失败!', mtInformation, [mbOk], 0)
else
MessageDlg('恢复成功!', mtInformation, [mbOk], 0);
label5.Caption := '';
label5.Refresh;
end;
procedure Trepair.FormActivate(Sender: TObject);
begin
MainFm.StatusBar1.Panels[1].Text := '对数据库进行压缩备份,请在使用此功能前关闭其他各种窗口!否则会出现错误!';
end;
procedure Trepair.FormClose(Sender: TObject; var Action: TCloseAction);
begin
with Mainfm do
begin
if MDIChildCount = 1 then
StatusBar1.Panels[1].Text := '';
end;
adodm.ADOConnection1.Connected := true;
Action := caFree;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -