Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 19.06.2008, 17:47   #1
Постоялец
 
Аватар для plahmonah
 
Пол:Мужской
Регистрация: 11.08.2005
Сообщений: 626
Репутация: 266
По умолчанию Работа IBBackupService и IBRestoreService

Подскажите кто работал с этими компонентами IBBackupService и IBRestoreService с закладки InterBase Admin.
Как запрограммировать чтобы делать бэкап и восстановление бд через эти компоненты...
plahmonah вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Заходите на сайт MebelStol.ru: журнальный стол стеклянный купить - отличные цены и большой выбор!электропривод belimo sf24a-srстоимость матрицы на xiaomi l43ma afruконцерт вячеслава бутусова в москве 2026 - redkassa.ruкупить мебель для кухни


Старый 29.07.2008, 20:03   #2
while
Неактивный пользователь
 
Аватар для while
 
Регистрация: 21.07.2008
Адрес: Кривой Рог, Украина
Сообщений: 19
Репутация: 6
По умолчанию Ответ: Работа IBBackupService и IBRestoreService

В документации об этом написано. А еще еть замечательные примеры, поставляемы с библиотекой IBX
while вне форума
 
Ответить с цитированием Вверх
Старый 28.08.2008, 09:32   #3
cg_shura
Неактивный пользователь
 
Пол:Мужской
Регистрация: 28.08.2008
Сообщений: 6
Репутация: 0
По умолчанию Re: Работа IBBackupService и IBRestoreService

Примерно так:

function TBaseDM.ExecuteDBOptimize(BackupDBFileSpec: String;
RemoveBackupDBFile: Boolean;
DoRestore: Boolean): Boolean;
var
RestoredDBFileSpec: String;
DBFileSizeBefore, DBFileSizeAfter: Cardinal;
begin
// TODO зарезервировать объем на диске для операции

DBFileSizeBefore := GetFileSize(DBFileSpec);

if BackupDBFileSpec = '' then
BackupDBFileSpec := DBFileSpec + '.backup.tmp';
RestoredDBFileSpec := DBFileSpec + '.restored.tmp';

IBDatabase.Connected := False;

FibBackupService.DatabaseName := DBFileSpec;
FibBackupService.Params.Values['password'] := GetPassword;
FibBackupService.BackupFile.Clear;
FibBackupService.BackupFile.Add(BackupDBFileSpec);
CheckDeleteFile(FibBackupService.BackupFile[0]);

LogMsg(Format('Backup database "%s" (%d bytes) to "%s" . . .',
[FibBackupService.DatabaseName, DBFileSizeBefore, FibBackupService.BackupFile[0]]));

FibBackupService.Active := True;
try
FibBackupService.ServiceStart;
while not FibBackupService.Eof do
begin
if not ProgressJob(JobId, [pnPercent], pkValueIncrement, 1, '') then
begin
FAborted := True;
Break;
end;
LogMsg(FibBackupService.GetNextLine);
end;
finally
FibBackupService.Active := False;
end;

if DoRestore and (not FAborted) then
begin
FibRestoreService.DatabaseName.Clear;
FibRestoreService.DatabaseName.Add(RestoredDBFileS pec);
FibRestoreService.Params.Values['password'] := GetPassword;
FibRestoreService.BackupFile.Clear;
FibRestoreService.BackupFile.Add(BackupDBFileSpec) ;

LogMsg(Format('Restore database "%s" from "%s" . . .',
[FibRestoreService.DatabaseName[0], FibRestoreService.BackupFile[0]]));

FibRestoreService.Active := True;
try
FibRestoreService.ServiceStart;
while not FibRestoreService.Eof do
begin
if not ProgressJob(JobId, [pnPercent], pkValueIncrement, 1, '') then
begin
FAborted := True;
Break;
end;
LogMsg(FibRestoreService.GetNextLine);
end;
finally
FibRestoreService.Active := False;
end;

if not FAborted then
begin
LogMsg(Format('Move "%s" to "%s" . . .', [RestoredDBFileSpec, DBFileSpec]));
CheckMoveFile(RestoredDBFileSpec, DBFileSpec);

DBFileSizeAfter := GetFileSize(DBFileSpec);
LogMsg(Format('INFO: Database size before optimization - %d bytes, after - %d bytes', [DBFileSizeBefore, DBFileSizeAfter]));

ProgressJob(JobId, [pnPercent], pkValueIncrement, 10, '');

if RemoveBackupDBFile then
begin
LogMsg(Format('Deleting file "%s" . . .', [BackupDBFileSpec]));
CheckDeleteFile(BackupDBFileSpec);
end;

LogMsg(Format('Deleting file "%s" . . .', [RestoredDBFileSpec]));
CheckDeleteFile(RestoredDBFileSpec);
end;
end; //if DoRestore and (not FAborted) then

if FAborted then
EndJob(JobId, lmOk, 'Оптимизация прервана')
else
begin
EndJob(JobId, lmOk, 'Оптимизация успешно завершена');
end;

Result := not FAborted;
end;

Добавлено через 1 минуту
Ээ, нехороршо форматирование кода поубирало...

Последний раз редактировалось cg_shura; 28.08.2008 в 09:33.. Причина: Добавлено сообщение
cg_shura вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с .CUE Olegaaator Просмотр, конверторы и монтаж Аудио&Видео 11 08.01.2011 16:00
Работа c 1C по OLE из Delphi ADyn Delphi 20 24.03.2010 11:17
Работа с PHP Tipsan PHP 8 10.09.2008 02:56

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 18:10. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.04468 секунды с 13 запросами