Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2007, 13:33   #1
Дамир
Пользователь Подтвердите свой е-майл
 
Регистрация: 06.12.2006
Сообщений: 61
Вопрос БД Access и Delphi

Привет!
Имеется БД Raport.mdb, необходимо организовать создание резервной копии БД под названием "год".mdb. Как это можно сделать?
Дамир вне форума Ответить с цитированием
Старый 11.03.2007, 14:38   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

вобщем, нужно вызвать средства Access которые
'Сервис / Служебные / сжать и восстановить БД '
предварительно закрыв все соедиения ..

пример будет завтра , пока найду
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 11.03.2007, 16:08   #3
Lynx
Пользователь
 
Аватар для Lynx
 
Регистрация: 09.02.2007
Сообщений: 49
По умолчанию

Можно сделать еще проще...
Попробуй скопирывать файл *.mdb, вот тебе и резервная копия...
Не нужно слишком заморачиваться, товарищи...
Свой среди чужих
Чужой среди своих
Lynx вне форума Ответить с цитированием
Старый 11.03.2007, 18:52   #4
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Лампочка вот что я имел в виду :

Код:
procedure TdataF.CompactDatabase_JRO(DatabaseName: string;
          DestDatabaseName: string = ''; Password: string = '');
var
  TempName: array[0..MAX_PATH] of Char; // имя временного файла
  TempPath: string; // путь до него
  Name: string;
  Src, Dest: WideString;
  V: Variant;
begin
  try
    Src := Provider + 'Data Source=' + DatabaseName;
    if DestDatabaseName <> '' then
      Name := DestDatabaseName
    else
    begin
      // выходная база не указана - используем временный файл
      // получаем путь для временного файла
      TempPath := ExtractFilePath(DatabaseName);
      if TempPath = '' then
        TempPath := GetCurrentDir;
      //получаем имя временного файла
      GetTempFileName(PChar(TempPath), 'mdb', 0, TempName);
      Name := StrPas(TempName);
    end;
    DeleteFile(PChar(Name)); // этого файла не должно существовать :))
    Dest := Provider + 'Data Source=' + Name;
    if Password <> '' then
    begin
      Src := Src + ';Jet OLEDB:Database Password=' + Password;
      Dest := Dest + ';Jet OLEDB:Database Password=' + Password;
    end;

    V := CreateOleObject('jro.JetEngine');
    try
      V.CompactDatabase(Src, Dest); // сжимаем
    finally
      V := 0;
    end;
    if DestDatabaseName = '' then
    begin // т.к. выходная база не указана
      DeleteFile(PChar(DatabaseName)); //то удаляем не упакованную базу
      RenameFile(Name, DatabaseName); // и переименовываем упакованную базу
    end;
  except
    // выдаем сообщение об исключительной ситуации
    on E: Exception do
      ShowMessage(e.message);
  end;
end;
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 26.12.2011, 21:43   #5
biged
Новичок
Джуниор
 
Регистрация: 21.01.2009
Сообщений: 1
По умолчанию Сжатие баз access 2010

я вот так делаю
--
Код:
function compactandrepair(db: string): boolean; {db = path to access database}
var
v: olevariant;
begin
result := true;
try
v := createoleobject('jro.jetengine');
try
v.compactdatabase('Provider=Microsoft.ACE.OLEDB.12.0;Data Source='+db+';Persist Security Info=False','Provider=Microsoft.ACE.OLEDB.12.0;Data Source='+db+'x;jet oledb:engine type=5');
deletefile(db);
renamefile(db+'x',db);
finally
v := unassigned;
end;
except
result := false;
end;
end;
Использование собственно:
compactandrepair('c:\база.accdb');

Последний раз редактировалось Simply-Art; 27.12.2011 в 08:03. Причина: есть тег CODE!!!
biged вне форума Ответить с цитированием
Старый 18.06.2014, 11:41   #6
Dozent
Форумчанин
 
Регистрация: 21.05.2008
Сообщений: 495
По умолчанию

а востановить как?)
Dozent вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi & Access & Ole vodila БД в Delphi 0 15.07.2008 11:11
delphi+access Doget БД в Delphi 2 30.06.2008 20:18
Delphi & Access LIEN Помощь студентам 1 26.04.2008 14:37
Access и Delphi Mitron БД в Delphi 6 10.01.2008 20:25
Access Delphi Yana БД в Delphi 1 04.01.2008 21:54