![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Подскажите кто работал с этими компонентами IBBackupService и IBRestoreService с закладки InterBase Admin.
Как запрограммировать чтобы делать бэкап и восстановление бд через эти компоненты... |
|
|
|
|
| Реклама: | Заходите на сайт MebelStol.ru: журнальный стол стеклянный купить - отличные цены и большой выбор! | электропривод belimo sf24a-sr | стоимость матрицы на xiaomi l43ma afru | концерт вячеслава бутусова в москве 2026 - redkassa.ru | купить мебель для кухни |
|
|
#2
|
|
В документации об этом написано. А еще еть замечательные примеры, поставляемы с библиотекой IBX
|
|
|
|
|
|
|
#3
|
|
Неактивный пользователь
Пол:
Регистрация: 28.08.2008
Сообщений: 6
Репутация: 0
|
Примерно так:
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.. Причина: Добавлено сообщение |
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Работа с .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 |
|
|