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

Как скопировать BDE таблицу

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

Как скопировать BDE таблицу

Данный пример копирует таблицу, достаточно только указать каталог, имя исходной таблицы и имя каталога куда копировать остальное сделает BDE, скопирует таблицу, все индексы и связанные файлы.


uses 
   DB, DBTables, DbiProcs, DbiErrs, DbiTypes;
 
 procedure CopyTable(FromDir, SrcTblName, ToDir, DestTblName:
 String);
 var
   DBHandle: HDBIDB;
   ResultCode: DBIResult;
   Src, Dest, Err: Array[0..255] of Char;
   SrcTbl, DestTbl: TTable;
 begin
   SrcTbl := TTable.Create(Application);
   DestTbl := TTable.Create(Application);
   try
     SrcTbl.DatabaseName := FromDir;
     SrcTbl.TableName := SrcTblName;
     SrcTbl.Open;
     DBHandle := SrcTbl.DBHandle;
     SrcTbl.Close;
     ResultCode := DbiCopyTable(DBHandle,false,
       StrPCopy(Src,FromDir + '\' + SrcTblName), nil,
       StrPCopy(Dest,ToDir + '\' + DestTblName));
     if ResultCode <> DBIERR_NONE then
     begin
       DbiGetErrorString(ResultCode,Err);
       raise EDatabaseError.Create('While copying ' +
         FromDir + '\' + SrcTblName + ' to ' +
         ToDir + '\' +  DestTblName + ', the '
         + ' database engine   generated the error '''
         + StrPas(Err) + '''');
     end;
   finally
     SrcTbl.Free;
     DestTbl.Free;
   end;
 end;

Приведенный код-сниппет - это процедура CopyTable, которая копирует таблицу BDE (Borland Database Engine) из одного каталога в другой. Процедура принимает четыре параметра:

  • FromDir: исходный каталог, где находится оригинальная таблица
  • SrcTblName: имя оригинальной таблицы
  • ToDir: целевой каталог, где будет создана копия таблицы
  • DestTblName: имя копии таблицы

Шаг за шагом, что код делает:

  1. Создается два экземпляра TTable, один для исходной таблицы (SrcTbl) и другой для целевой таблицы (DestTbl).
  2. Процедура устанавливает свойство DatabaseName объекта SrcTbl в значение параметра FromDir, который указывает на каталог, где находится оригинальная таблица.
  3. Затем она устанавливает свойство TableName объекта SrcTbl в значение параметра SrcTblName, которое является именем оригинальной таблицы.
  4. Процедура открывает исходную таблицу с помощью метода Open.
  5. Она получает handle для соединения базы данных для исходной таблицы с помощью свойства DBHandle.
  6. Процедура закрывает исходную таблицу с помощью метода Close.
  7. Затем она использует функцию DbiCopyTable для копирования таблицы, включая ее индексы и связанные файлы, из исходного каталога в целевой каталог.
  8. Если возникает ошибка при процессе копирования, код получает сообщение об ошибке с помощью функции DbiGetErrorString и поднимает пользовательский исключение (EDatabaseError) с сообщением об ошибке.

Блок finally обеспечивает освобождение ресурсов системы, которые могут быть заняты объектами SrcTbl и DestTbl.

Обратите внимание, что это код assumes that you have the BDE installed and configured on your system. Additionally, the code uses some old-style Delphi syntax and types, which might not be compatible with newer versions of Delphi.

В статье описывается пример программы на Delphi, которая позволяет скопировать таблицу из одного каталога в другой с помощью BDE (Borland Database Engine).


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

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




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


:: Главная :: BDE ::


реклама


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

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