![]() |
|
|
![]()
|
|
| SPrograMMer |
|
|||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
Ситуация следующая: создал прогу на IB, потребовалось резервное копирование данных изобразить но и соответственно восстановление в случае, не дай боже улета базы в никуда
Для создания backup`а использовал компонент TIBBackupService со следующим кодом:
Параметры соединения (Свойство Params) задано в DesignTime. Для восстанволения Код почти такой же. Но он сейчас не интересен, т.к. у меня не получается зделать копию... :'( Тестил я свою прогу, то есть из того какталога, где исходники лежат, база содержится и все такое. \ Результат на лицо - копируемся. то есть усе работает. Восстановление - так же Но вот делаю прогу - Setup для моего творения, в процессе Setup`а (собственная прога, никакими InnoSetup`ами не пользовался) создаются новая БД (таблицы + хронимки + триггеры + ....) по указанному пути. Все Ok. Прога работает, но вот при попытке зделать резервное копирование, сервер Interbase (ibguard.exe) вылетает... В XP стандартное окошко: "создан отчет об ошибке... Передайте Microsoft эти сведения..." В чем дело? В исходниках все пашет, аш пыхтит, а в установенная прога вызывает каюк серваку. -------------------- животное = зверь законченный гентушник |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Лично я не пользуюсь TIBBackupService по причине того, что он выполняется на машине ib-сервера. Соответственно может делать backup-файл только на эту-же машину. Или на машину ресурс которой расшарен и доступен с машины SQL-сервера. Это сильно затрудняет его использование.
Вместо TIBBackupService я использую утилиту GBAK входящую в дистрибутив IB/FB. Просто вызываю ее из под своей программы, передавая ей необходимые параметры и перехватывая вывод. Еще, такой способ позволяет получать более подробную информацию об ошибках, если таковый возникнут. Правда, разные версии IB имеют разные проги GBAK, это надо учитывать. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| Golden Hands |
|
|||
![]() Золотой ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2023 Регистрация: 23.1.2005 Где: Екатеринбург Репутация: 2 Всего: 83 |
Совет - если не обязательно программно, делай backup/restore/ при помощи программ администрирования InterBase. Из экспертов, например - IBExpert. Или - InterBase Backup Watcher.
-------------------- Мы обречены... но только на победу! Настанет день, и мы построим новый дом. Внесем в него тепло, что сохранить сумели, И воскресим все то, что в нас когда-то умерло... © Тень Света |
|||
|
||||
| SPrograMMer |
|
|||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
ОБЯЗАТЕЛЬНО! Добавлено @ 16:46 Ладно, Петрович ,будем GBAK ковырять... кстати, Петрович -------------------- животное = зверь законченный гентушник |
|||
|
||||
| Петрович |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Ну, ты этого сам захотел
"Выдрал" из работающего проекта, так что используется много вских моих библиотечых функций. Но, думаю как "рыба" подойдет. Если будут вопросы, задавай. -------------------- Все знать невозможно, но хочется |
||||
|
|||||
| SPrograMMer |
|
|||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
УГУ, Петрович, захотел, счас посмотрю, и если чего так плюсик поймаешь! -------------------- животное = зверь законченный гентушник |
|||
|
||||
| SPrograMMer |
|
|||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
Петрович, GBakExeFile - Функция фозвращает путь к GBak:
"C:\Program files\borland\ibs\bin\gbak.exe". ТАК? Чего делает функция LastCall в getResultFile ? StartExecuteCommand - нечто вроде ShellExecute ? ProcessKilled - проверяет, "убит" ли процесс gbak.exe , так ? Оч страшная функция AwEraseFile. Чего творит? и есчо функция Q чото творит со строками, вот только что??? по смыслу из строки Program files\my projects должна сделать нечто вроде 'Program files\my projects' Т. е. в кавычки заключает, только в двойные (ковычки) или одинарные (апострофы) - ??? Петрович, HELP ME! please. -------------------- животное = зверь законченный гентушник |
|||
|
||||
| Петрович |
|
||||||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
Не совсе. Это переменная. Ее значение, это имя (с путем) GBak.exe. Но, в зависимости от версии IB/FB сервера на котором пасемся. Определяется во время подключения к серверу. Поскольку программа расчитанна на работу с разныи серверами, то мы в составе своей программы поставляем несколько версий GBak.exe, для каждой версии IB. (GBak5.exe,GBak6.exe,GBak7.exe).
Обозначает что это последний вызов getResultFile, соответственно требуется уничтожение потока f.
Угу. Только StartExecuteCommand возвращает Handle запущенного процесса, что позволяет активно дожидаться его завершения, попутно реагируя на требование оператора прервать процесс путем закрытия моего приложения (Application.Terminated). Что собственно и делается в цикле repeat until.
Да вобщем ничего страшного. Просто функция из моей библиотеки:
Ты почти паравильно угадал
Все эти функции есть в модуле awString из мокй библиотеки. Его можно поиметь здесь Будут еще вопросы задавай. Это сообщение отредактировал(а) Петрович - 21.2.2005, 23:29 -------------------- Все знать невозможно, но хочется |
||||||||||||||
|
|||||||||||||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 6 Всего: 55 |
А вообще, мне твой подход понравился. Не просто скопировать и пожаловаться что не пашет, а попытаться разобраться. Это я люблю.
-------------------- Все знать невозможно, но хочется |
|||
|
||||
| SPrograMMer |
|
|||
![]() Спамер :) ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 5.11.2004 Где: Краснодар Репутация: 1 Всего: 6 |
Спасиб Петрович, что помог, лови законный плюсик Добавлено @ 15:29 Ах... ты ... черт, забыл что не исходники! Говорит, что 100 постов надо мне набрать чтоб репутацию менять мог... Ладно Петрович, как наберу, не забуду, припомню, Это сообщение отредактировал(а) SPrograMMer - 24.2.2005, 15:30 -------------------- животное = зверь законченный гентушник |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |