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

•  TDictionary Custom Sort  3 225

•  Fast Watermark Sources  2 991

•  3D Designer  4 750

•  Sik Screen Capture  3 259

•  Patch Maker  3 467

•  Айболит (remote control)  3 528

•  ListBox Drag & Drop  2 904

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

•  Графические эффекты  3 843

•  Рисование по маске  3 171

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

•  Canvas Drawing  2 672

•  Рисование Луны  2 500

•  Поворот изображения  2 092

•  Рисование стержней  2 120

•  Paint on Shape  1 525

•  Генератор кроссвордов  2 183

•  Головоломка Paletto  1 730

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

•  Пазл Numbrix  1 649

•  Заборы и коммивояжеры  2 016

•  Игра HIP  1 262

•  Игра Go (Го)  1 200

•  Симулятор лифта  1 422

•  Программа укладки плитки  1 177

•  Генератор лабиринта  1 512

•  Проверка числового ввода  1 297

•  HEX View  1 466

•  Физический маятник  1 322

•  Задача коммивояжера  1 357

 
скрыть


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

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



Delphi Sources

Как упаковать базу (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;





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

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

Create Table in Runtime

Dynamic Menu Runtime




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

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