uses
  Windows,bde,Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids;type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Table1: TTable;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);  private
    { Private declarations }
  public
    { Public declarations }
  end;
   function PackDbfTable( DbfTable : TTable ) : boolean;
var
  Form1: TForm1;implementation{$R *.dfm}function PackDbfTable( DbfTable : TTable ) : boolean;
var
   errResult : DBIResult;
begin
     if not DbfTable.Exclusive then
     begin
    DbfTable.Active:=false;
    DbfTable.Exclusive:=true;
    DbfTable.Active:=true;
    end;
     errResult := DbiPackTable( DbfTable.dbHandle, DbfTable.handle, NIL, NIL, true );
    DbfTable.Active:=false;
    DbfTable.Exclusive:=false;
    DbfTable.Active:=true;     if errResult = DBIERR_NONE then
         result := true
     else
result := false;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
table1.delete;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
packdbftable(table1)  ;
end;end.