读书人

delphi怎么物理删除DBF数据

发布时间: 2012-10-05 15:34:34 作者: rapoo

delphi如何物理删除DBF数据
delphi如何物理删除DBF数据

[解决办法]
删除以后,需要pack一下,pack之前需要断开数据联接
老代码了,试试看行否

Delphi(Pascal) code
{***************************************************************** Unit Name: unAccessTools* Purpose  : Provide tools to compact and repair Access database.*****************************************************************}unit unAccessTools;interfaceuses Sysutils,ComObj,Dialogs;function DaoActive(var DaoObject:OleVariant):Boolean;function DaoCompactDB(const FileName:string):Boolean;function DaoRepairDB(const FileName:string):Boolean;implementationfunction 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. 

读书人网 >.NET

热点推荐