Пакование таблиц Paradox

Можно ли перестраивать и паковать таблицы Paradox из программ, написанных на Delphi?

Проверьте работу приведенной ниже функции, она пакует таблицы Paradox и dBase (требуется компонент TDatabase, указывающий на ту же директорию, где хранятся таблицы):

uses
  BDE;

function PackTable(tbl:TTable; db:TDatabase): DBIResult;
var
  crtd: CRTblDesc;
begin
  Result := DBIERR_NA;
  with tbl do if Active then Active := False;
  with db do if not Connected then Connected := True;
  FillChar(crtd,SizeOf(CRTblDesc), 0);
  StrPCopy(crtd.szTblName, tbl.TableName);
  crtd.bPack := True;
  Result := DbiDoRestructure(db.Handle, 1, @crtd, nil, nil, nil, FALSE);
end;
Пример использования:

procedure TForm1.Button1Click(Sender: TObject);
begin
  if PackTable(Table1, DataBase1) = DBIERR_NONE then ...
  else MessageBeep(0);
end;