Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 02.07.2008, 12:23
Мариюшка Мариюшка вне форума
Прохожий
 
Регистрация: 02.07.2008
Сообщения: 6
Репутация: 10
Вопрос создание резервных копий и восстановление БД программно в приложении

стоит задача в Delphi создавать резервные копии БД (на интербейсе) и последующее восстановление (аналог gbak.exe но приложением, а не консольное). есть ли в делфи компонент, позволяющий осуществить эти действия или придется писать самой? если писать, но какой компонент лучше взять за родительский и как вообще это осуществить?
Заранее большое спасибо!
Ответить с цитированием
  #2  
Старый 02.07.2008, 16:26
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

обрати внимание на компоненты jcl для interbase
JvUIBBackup
JvUIBRestore
видимо это ты ищешь... хотя думается мне что они пользуют тот же gbak
Ответить с цитированием
  #3  
Старый 02.07.2008, 21:35
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,050
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Вообще, для интербейза достаточно откопировать файл.
Правда, для этого лучше "положть" сервак, но это, в принципе, не обязательно.
Ответить с цитированием
  #4  
Старый 03.07.2008, 09:45
Мариюшка Мариюшка вне форума
Прохожий
 
Регистрация: 02.07.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от xchrom
хотя думается мне что они пользуют тот же gbak
да мне не принципиально, чтобы было не gbak, просто он консольный, а надо бы, чтоб пользователю это делать было удобно))
Большое спасибо за помощь!!!
вот только... у нас тут Delphi6. в нем нашла IBBackupService на вкладке InterBase Admin. оно ли это? видимо, оно, потому что другого всерн нет))

Последний раз редактировалось Мариюшка, 03.07.2008 в 09:59.
Ответить с цитированием
  #5  
Старый 03.07.2008, 09:47
Мариюшка Мариюшка вне форума
Прохожий
 
Регистрация: 02.07.2008
Сообщения: 6
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Вообще, для интербейза достаточно откопировать файл.
интербейс эт пока... а должно быть в принципе без разницы, какая база... но эт уже дело десятое))
Ответить с цитированием
  #6  
Старый 03.07.2008, 11:16
xchrom xchrom вне форума
Начинающий
 
Регистрация: 08.04.2008
Сообщения: 177
Репутация: 15
По умолчанию

Цитата:
Сообщение от Мариюшка
да мне не принципиально, чтобы было не gbak, просто он консольный, а надо бы, чтоб пользователю это делать было удобно))
Большое спасибо за помощь!!!
вот только... у нас тут Delphi6. в нем нашла IBBackupService на вкладке InterBase Admin. оно ли это? видимо, оно, потому что другого всерн нет))
эти компоненты из Jedi, для 6 delphi ставяться отдельно
Ответить с цитированием
  #7  
Старый 03.07.2008, 11:52
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Пример из справки (нужен unit IBServices).

TIBBackupService allows you to back up your database.
Код:
This example shows a component that backs up a database with the click of a button.  The second example shows how to back up a database to multiple files.

procedure TForm1.Button1Click(Sender: TObject);
begin
 with IBBackupService1 do
  begin
    ServerName := 'Poulet';
    LoginPrompt := False;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active := True;
    try
      Verbose := True;
      Options := [NonTransportable, IgnoreLimbo];
      DatabaseName := 'c:\interbase\examples\database\employee.gdb';
      BackupFile.Add('c:\temp\employee1.gbk');

      ServiceStart;
      While not Eof do
        Memo1.Lines.Add(GetNextLine);
    finally
      Active := False;
    end;
  end;

end;

To back up a database to multiple files:

procedure TForm1.Button2Click(Sender: TObject);
begin
  with IBBackupService1 do
  begin
    ServerName := 'Poulet';
    LoginPrompt := False;
    Params.Add('user_name=sysdba');
    Params.Add('password=masterkey');
    Active := True;
    try
      Verbose := True;
      Options := [MetadataOnly, NoGarbageCollection];
      DatabaseName := 'c:\interbase\examples\database\employee.gdb';
******BackupFile.Add('c:\temp\e1.gbk = 2048');

      BackupFile.Add('c:\temp\e2.gbk' = 4096);
      BackupFile.Add('c:\temp\e3.gbk'); ServiceStart;
      While not Eof do
        Memo1.Lines.Add(GetNextLine);
    finally
      Active := False;
    end;
  end;
end;
Ответить с цитированием
  #8  
Старый 03.07.2008, 12:38
Мариюшка Мариюшка вне форума
Прохожий
 
Регистрация: 02.07.2008
Сообщения: 6
Репутация: 10
По умолчанию

Большое спасибо! теперь буду реализовывать))
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter