Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Пакование таблиц Paradox и dBASE

Автор: Mike Orriss

Возвожно ли перестраивать и паковать таблицы Paradox из программ, написанных на Delphi, если да то как и где найти документацию по этому вопросу?

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


uses DBIProcs, DBITypes, DBIErrs;

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;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay