Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 536

•  TDictionary Custom Sort  6 567

•  Fast Watermark Sources  6 337

•  3D Designer  9 288

•  Sik Screen Capture  6 673

•  Patch Maker  7 045

•  Айболит (remote control)  7 058

•  ListBox Drag & Drop  5 927

•  Доска для игры Реверси  97 385

•  Графические эффекты  7 263

•  Рисование по маске  6 559

•  Перетаскивание изображений  5 424

•  Canvas Drawing  5 797

•  Рисование Луны  5 499

•  Поворот изображения  5 031

•  Рисование стержней  3 585

•  Paint on Shape  2 841

•  Генератор кроссвордов  3 719

•  Головоломка Paletto  2 997

•  Теорема Монжа об окружностях  3 800

•  Пазл Numbrix  2 504

•  Заборы и коммивояжеры  3 188

•  Игра HIP  2 157

•  Игра Go (Го)  2 093

•  Симулятор лифта  2 467

•  Программа укладки плитки  2 132

•  Генератор лабиринта  2 608

•  Проверка числового ввода  2 285

•  HEX View  2 618

•  Физический маятник  2 229

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Перемещение таблиц



Здесь я привожу примеры программ, которые я использую для копирования и удаления таблиц. Необходимые для работы модули: DB, DBTables, DbiProcs,DbiErrs, и DbiTypes. Вам всего лишь необходимо указать каталог расположения, исходное имя таблицы, каталог назначения и имя таблицы, куда будет скопирована исходная таблица и BDE скопирует таблицу целиком со всеми индексами. Процедура удаления в качестве входных параметров использует каталог расположения и имя таблицы, при этом BDE удаляет как саму таблицу, так и все файлы, связанные с ней (индексы и т.п.). Для тестирования данные процедуры были помещены в новое приложение и мне пришлось их немного отредактировать, чтобы удалить некоторые зависимости, которые были связаны с главной формой приложения. Теперь процедуры являются полностью автономными и могут быть помещены в отдельный модуль. (Не забудьте включить его в список используемых модулей). Пользуйтесь на здоровье!


procedure TConvertForm.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('При копировании ' +
        FromDir + '\' + SrcTblName + ' в ' +
        ToDir + '\' + DestTblName + ' ,'
        + 'BDE сгенерировал ошибку '''
        + StrPas(Err) + '''');
    end;
  finally
    SrcTbl.Free;
    DestTbl.Free;
  end;
end;

procedure TConvertForm.DeleteTable(Dir, TblName: string);
var
  DBHandle: HDBIDB;
  ResultCode: DBIResult;
  tbl, Err: array[0..255] of Char;
  SrcTbl, DestTbl: TTable;
  SrcTbl := TTable.Create(Application);
begin
  try
    SrcTbl.DatabaseName := Dir;
    SrcTbl.TableName := TblName;
    SrcTbl.Open;
    DBHandle := SrcTbl.DBHandle;
    SrcTbl.Close;
    ResultCode := DbiDeleteTable(DBHandle,
      StrPCopy(Tbl, Dir + '\' + TblName), nil);
    if (ResultCode <> DBIERR_NONE) then
    begin
      DbiGetErrorString(ResultCode, Err);
      raise EDatabaseError.Create('Удаляя ' +
        Dir + '\' + TblName + ', BDE ' +
        'сгенерировал ошибку '''
        + StrPas(Err) + '''');
    end;
  finally
    SrcTbl.Free;
  end;
end;





Похожие по теме исходники

Создание таблиц в Paradox

Таблица совместимости продуктов питания




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте