`
cbuiler
  • 浏览: 2648 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

Delphi 实现 Access 2003 数据库压缩

阅读更多
源码:
//AFileName:文件名称,APassWord:密码
procedure CompactDatabase(AFileName,APassWord:string);
const
  SConnStr = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Jet OLEDB:Database Password=%s;';
var
  SPath,SFile:Array [0..254] Of Char;
  STempFileName:String;
  JE:OleVariant;
begin
  GetTempPath(40,SPath);
  GetTempFileName(SPath,'~CP',0,SFile);
  STempFileName:=SFile;
  DeleteFile(STempFileName);
  try
    JE:=CreateOleObject('JRO.JetEngine');
    OleCheck(JE.CompactDatabase(Format(SConnStr,[AFileName,APassWord]),
        Format(SConnStr,[STempFileName,APassWord])));
    CopyFile(PChar(STempFileName),PChar(AFileName),False);
    DeleteFile(STempFileName);
    showmessage('数据库压缩完成!');
  except
    showmessage('数据库压缩失败!');
  end;
end;
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics