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

•  DeLiKaTeS Tetris (Тетрис)  3 927

•  TDictionary Custom Sort  6 031

•  Fast Watermark Sources  5 821

•  3D Designer  8 641

•  Sik Screen Capture  6 153

•  Patch Maker  6 594

•  Айболит (remote control)  6 583

•  ListBox Drag & Drop  5 442

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

•  Графические эффекты  6 796

•  Рисование по маске  5 967

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

•  Canvas Drawing  5 343

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

•  Поворот изображения  4 608

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

•  Paint on Shape  2 507

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

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

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

•  Пазл Numbrix  2 295

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

•  Игра HIP  1 945

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

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

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

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

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

•  HEX View  2 376

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

 
скрыть

  Форум  

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

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



Delphi Sources

Программное сжатие базы данных Access используя DAO



Автор: Savva

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Программное сжатие базы данных Access используя DAO

Процедура позволяет сжать базу данных в формате Access, используя DAO.
Действие аналогичное пункту меню в Access "Сервис -> Служебные программы ->
Сжать и восстановить базу данных".
Параметры:
* DatabaseName - путь к базе данных
* Password - пароль базы данных

Зависимости: windows,SysUtils,Dialogs,DAO2000,ComObj
(Dialogs можно исключить используя MessageBox для вывода
сообщения исключительной ситуации)
Автор:       savva, savva@nm.ru, ICQ:126578975, Орел
Copyright:   Сапронов Алексей (Savva)
Дата:        31 мая 2002 г.
***************************************************** }

//перед вызовом процедуры базу надо закрыть, а после - открыть

procedure TData.CompactAccessDatabase(DatabaseName, Password: string);
var
  TempName: array[0..MAX_PATH] of Char; // имя временного файла
  TempPath: string; // путь
  Name: string;
  tmpDAO: _DBEngine;
  ClassID: TGUID;
  V35, V36: string; // версия DAO
begin
  V35 := 'DAO.DBEngine.35';
  V36 := 'DAO.DBEngine.36';
  try // получим ClassID
    try
      ClassID := ProgIDToClassID(v35);
    except
      try
        ClassID := ProgIDToClassID(v36);
      except
        raise; // что то нам неизвестное
      end;
    end;
    // получаем путь для временного файла
    TempPath := ExtractFilePath(DatabaseName);
    if TempPath = '' then
      TempPath := GetCurrentDir;
    //получаем имя временного файла
    GetTempFileName(PChar(TempPath), 'mdb', 0, TempName);
    Name := StrPas(TempName);
    DeleteFile(PChar(Name)); // этого файла не должно существовать :))
    if Password <> '' then
      Password := ';pwd=' + Password;
    tmpDAO := CreateComObject(ClassID) as _DBEngine;
    tmpDAO.CompactDatabase(DatabaseName, Name, 0, 0, Password);
    DeleteFile(PChar(DatabaseName)); // удаляем не упакованную базу
    RenameFile(Name, DatabaseName); // переименовываем упакованную базу
  except
    // выдаем сообщение об исключительной ситуации
    on E: Exception do
      ShowMessage(e.message);
  end;
  еnd;

Пример использования:

...
db.Close;
CompactAccessDatabase('database.mdb', 'password');
db.open;
...




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

Pevrica (сжатие данных)

ExeFog (сжатие EXE)

Экспорт баз данных в Excel

База данных "Книжный магазин"

 

База данных Видеофильмов

База данных "Школа"

База данных без BDE

База данных студентов

 

Фильтрование данных

Transfer Tables Excel-Access




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

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