Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как упаковать базу (DBase, Paradox) в RunTime

Delphi , Базы данных , Paradox

Как упаковать базу (DBase, Paradox) в RunTime

Для dBase:


uses
  DbiProcs;

with Table do
begin
  OldState := Active;
  Close;
  Exclusive := True;
  Open;

  DbiPackTable(DBHandle, Handle, nil, nil, True);
  {^ здесь можно добавить check()}

  Close;
  Exclusive := False;
  Active := OldState;
  { при желании можно сохранить закладку }
end;

Для Paradox:


DbiDoRestructure(DBHandle, 1, ?, nil, nil, nil, False); { см. dbiProcs.int }

Вместо ? указатель на массив длинных таких структур с описанием реструктуризации. Кто делал на Px, я думаю, дадут пример.

Это насчет упаковки db (может что-то и лишнее, что-то можно сделать по-дpугому, но pаботает )

Пpимеp для Paradox:


uses
  BDE; // for D3, для D2 непомню (что-то типа DbiProc и еще что-то)

// для пpимеpа
tLog: TTable; // таблица юзающая d:\db\log.db

var
  TblDesc: CRTblDesc;
  rslt: DBIResult;
  Dir: string; //имеется в виду huge string т.е. {$H+}
  hDb: hDbiDb;

begin
  tLog.Active:=False; //деактивиpуем TTable

  SetLength(Dir, dbiMaxNameLen + 1);
  DbiGetDirectory(tLog.DBHandle, False, PChar(Dir));
  SetLength(Dir, StrLen(PChar(Dir)));

  DbiOpenDatabase(nil, nil, dbiReadWrite, dbiOpenExcl,
  nil, 0, nil, nil, hDb);

  DbiSetDirectory(hDb, PChar(Dir));

  FillChar(TblDesc, sizeof(CRTblDesc), 0);
  StrPCopy(TblDesc.szTblName, 'd:\db\log.db');
  // здесь должно быть полное имя файла
  // котоpое можно:
  // а) ввести pуками;
  // б) вытащить из пpопеpтей таблицы;
  // в) вытащить из алиаса;
  // г) см. FAQ
  StrCopy(TblDesc.szTblType, szParadox);
  //BTW тут может и szDBase стоять

  TblDesc.bPack := TRUE;

  DbiDoRestructure(hDb, 1, @TblDesc, nil, nil, nil, False);
  DbiCloseDatabase(hDb);
end;

Код используется для упаковки (сжатия) файла базы данных в реальном времени. Он использует библиотеку DbiProcs для взаимодействия с базой данных.

Для dBase:

Код открывает таблицу в исключительном режиме, упаковывает ее с помощью функции DbiPackTable, а затем закрывает ее. Функция DbiPackTable сжимает данные таблицы.

Для Paradox:

Код открывает файл базы данных Paradox, устанавливает путь к директории, создает структуру CRTblDesc для описания таблицы, которую нужно упаковать, и затем использует функцию DbiDoRestructure для упаковки таблицы. В функции DbiDoRestructure символ ? заменяется указателем на массив структур, описывающих операцию перепроектирования.

Вот некоторые заметки о коде:

  • Для Paradox вам нужно использовать библиотеку BDE (Borland Database Engine).
  • Вы можете настроить параметры упаковки и опции в соответствии с вашими конкретными потребностями.
  • Функция DbiDoRestructure используется для обоих типов баз данных dBase и Paradox, но структура массива CRTblDesc отличается для каждого типа базы данных.

В отношении альтернативных решений вы можете рассмотреть использование других библиотек или инструментов, которые предлагают болееadvanced функции сжатия, такие как:

  • zlib: популярная библиотека сжатия, которая может быть использована с Delphi.
  • QuickLZ: быстрый и эффективный инструмент сжатия, который может быть использован с Delphi.
  • SQL Server Compact Toolbox: утилита для работы с базами данных SQL Server Compact, включая сжатие.

Обратите внимание, что эти альтернативы могут иметь разные API и требования, чем библиотека DbiProcs.

В статье описывается упаковка баз данных dBase и Paradox в режиме Runtime с помощью библиотеки DbiProcs.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Paradox ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:40:02/0.0057220458984375/1