• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

对access数据库维护_Delphi

Delphi 搞代码 3年前 (2018-08-09) 136次浏览 已收录 0个评论

{***************************************************************
*
* Unit Name: unaccessTools
* Purpose  : Provide tools to compact and repair Access database.
*
****************************************************************}

unit unAccessTools;

interface

http://www.gaodaima.com/?p=65994对access数据库维护_Delphi

uses Sysutils,ComObj,Dialogs;

function DaoActive(var DaoObject:OleVariant):Boolean;
function DaoCompactDB(const FileName:string):Boolean;
function DaoRepairDB(const FileName:string):Boolean;

implementation

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;

//压缩Access数据库
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;

//修复Access数据库
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;

end.

欢迎大家阅读《对access数据库维护_Delphi,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址