Не срабатывае pFIBRestoreService->Detach()

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
kovba
Сообщения: 9
Зарегистрирован: 16 апр 2005, 16:35

Не срабатывае pFIBRestoreService->Detach()

Сообщение kovba » 06 дек 2006, 13:26

Нужно при востановлении базы, если возникает ошибка удалить ее и вернуть из копии старую.
Если срабатывает ошибка делаю pFIBRestoreService->Detach(). Но оно ругается что сервис не Attach, и файл с базой остается занять процесом.

Не подскажите в чем я не прав?

BDS2006 (c++Builder)+FIB6.45.0

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 06 дек 2006, 14:39

Восстановление нормальные люди делают только если база потеряна. Соответственно копировать "старую" неоткуда.

kovba
Сообщения: 9
Зарегистрирован: 16 апр 2005, 16:35

Сообщение kovba » 07 дек 2006, 14:45

Dimitry Sibiryakov писал(а):Восстановление нормальные люди делают только если база потеряна. Соответственно копировать "старую" неоткуда.
Хочу просто перепаковать базу. Делаю бэкап и сразу же востанавливаю, но с какой то причины возникает ошибка, вот поэтому мне и нужно вернуть старый файлик с базой обратно (до востановления просто переименовал).
Да и проблема не в файлике, а всамом сервисе, при возникновении ошибки не могу его остановить, вот и получается что файл у меня все время залочен.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Сообщение Dimitry Sibiryakov » 07 дек 2006, 15:01

В морг твою перепаковку. Если с базой нормально работать она ни в какой перепаковке не нуждается на протяжении как минимум пары миллиардов транзакций. Но и тогда лучше все делать аккуратно, ручками.
То что сервер держит восстановленную базу - его право. Я не знаю какая уж там у тебя ошибка происходит (хрустальный шар отказал), но баги есть баги...

Ответить