delphi下对dbf文件进行物理删除


本文整理自网络,侵删。

 
我们知道,一般的dbf文件执行delete操作都只是对文件进行逻辑删除(对记录做标记,可以恢复),而怎么使记录彻底删除呢?

如下:

procedure PackTable(Table: TTable);
var
  Props: CURProps;
begin
  // 必须以独占方式打开
  if (not Table.Active) or (not Table.Exclusive) then Exit;
  Check(DBIGetCursorProps(Table.Handle, Props));
  // 必须是dBase或FoxPro
  if Props.szTableType <> szDBASE then Exit;
  Check(DBIPackTable(Table.DBHandle, Table.Handle, nil, szDBASE, True));
  Table.Open;
end;


procedure BatchPackTable(const sCurrentPath: string);   //dbf文件目录
var 
 SearchRec: TSearchRec; 
 iFindResult:integer; 
 tblBeUndelete: TTable;
begin 
 iFindResult := FindFirst (sCurrentPath + '*.dbf', faAnyFile, SearchRec); 
 while iFindResult = 0 do 
 begin
   Application.ProcessMessages;
   tblBeUndelete :=TTable.Create(W_POS_MainWindow);
   Application.ProcessMessages;
   with tblBeUndelete do 
   begin 
     DatabaseName := sCurrentPath; 
     TableName := SearchRec.Name; 
     TableType := ttDBase; 
     Exclusive := True; 
     Open; 
     Application.ProcessMessages; 
     PackTable(tblBeUndelete); 
     Application.ProcessMessages; 
     Close; 
     Free;
   end; 
   Application.ProcessMessages; 
   iFindResult := FindNext (SearchRec); 
  end; 
 (* 向下搜寻子目录 *) 
 iFindResult := FindFirst(sCurrentPath + '*.', faDirectory, SearchRec); 
 while iFindResult = 0 do 
 begin 
   Application.ProcessMessages; 
   if (SearchRec.Name[1] <> '.') then 
   begin 
     BatchPackTable(sCurrentPath + SearchRec.Name + '\'); 
   end; 
   iFindResult := FindNext(SearchRec); 
 end; 

end;



如果需要对dbf文件进行物理删除,只需要调用BatchPackTable方法。
――――――――――――――――

原文链接:https://blog.csdn.net/camillect/article/details/80568807

相关阅读 >>

Delphi idhttp returning http 1.1/500 显示错误内容

Delphi kbmmw sampleservice/sampleclient方式传输数据集

Delphi selectdirectory 选择文件夹

Delphi类型转换函数

Delphi 编写的一个感染文件夹的小病毒

Delphi点击网页弹出的alert对话框的确定按钮

Delphi 如何在桌面添加右键菜单

Delphi webbrowser载入自定义html内容并显示

Delphi 通过pid获取进程名

Delphi图像细化处理

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...