小弟求救:如何用delphi备份、压缩和恢复access数据库,在线等待,高分!
解决方案 »
- Missing operator or semicolon;哪错了
- interface和implementation分别是什么意思?
- 我的牢骚!给分
- 急急急!!!!数据仓库数据显示问题
- 如何得到局域网内所有SQLSever服务器HOST?
- 谁可以给我谈谈Delphi中,xml控件和导入msxml库进行编程的不同!
- 关于TIdTCPServer连接的问题,大家帮帮忙,实在没办法了。。。
- 请教各们老大,我的SQL 语句如何优化,100分送上,这是我的最高分了。
- 一个有关Ttreeview的小问题
- 请教:ModalResult := mrOK这一句什么意思,能不能起到退出form作用,退出后还占用系统资源吗
- 请大虾提供水晶报表8.0安装序列号!谢谢!
- 数据库怎么放到别的机子里运行?
压缩嘛,用压缩软件压缩啦,delphi有专门做压缩的第三方控件,自己去找一下啦!做一个压缩程序压缩数据库文件不就行了。
access不比sql有自己的压缩命令!
至于压缩吗:
var
FileAdd :string;
begin
FileAdd :=zipfilename;
if FileExists(FileAdd)=false then
Exit;
zipmData.ZipFilename :=FileAdd;
if ZipMData.Count < 1 then
begin
Application.MessageBox('没有文件需要解压缩!','错误提示',mb_iconStop+mb_OK);
Exit;
end;
with zipmData do
begin
zipmData.ExtrBaseDir:='\';//FilePath;
zipmData.ExtrOptions :=[ExtrDirNames]+[ExtrOverwrite];
try
zipmData.Extract;
except
Application.MessageBox('解压缩中,需要的dll文件不存在或不能用!,!','信息提示',mb_iconStop+mb_OK);
end;
end;
end;
--------------------------------------
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ComObj;
type
TForm1 = class(TForm)
Button1: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
implementation
{$R *.dfm}
//压缩Access数据库
function DaoActive(var DaoObject:OleVariant):Boolean;
begin
Result:=False;
try
DaoObject:=GetActiveOleObject('DAO.DBEngine.36');
Result:=True;
except
try
DaoObject:=CreateOleObject('DAO.DBEngine.36');
Result:=True;
except
DaoObject:=Null;
end;
end;
end;function DaoCompactDB(const FileName:string):Boolean;
var
db:OleVariant;
TempFile:string;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
TempFile:=ExtractFilePath(FileName)+'msaTemp.mdb';
db.CompactDatabase(FileName,TempFile);
DeleteFile(FileName);
RenameFile(TempFile,FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
if DaoCompactDB('e:\abc\jxcdb.mdb') then ShowMessage('OK');
end;
end;
end.
var
db:OleVariant;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
db.RepairDatabase(FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;
function DaoRepairDB(const FileName:string):Boolean;
var
db:OleVariant;
begin
Result:=False;
try
if not DaoActive(db) then
Exit;
try
db.RepairDatabase(FileName);
Result:=True;
except
on E:EOleException do
ShowMessage(E.Message);
end
finally
db:=Unassigned;
end;
end;